【问题标题】:models.E006 in abstract parent model - Django 3.1抽象父模型中的models.E006 - Django 3.1
【发布时间】:2021-03-28 07:42:34
【问题描述】:

我有一个抽象模型和一些其他继承自它的类。

# models.py
class Parameter(models.Model):

    data = integer = models.IntegerField(blank=True, null=True)
    
    class Meta:
        abstract = True

class Temperature(Parameter):
    
    received_timestamp = models.DateTimeField(default=datetime.now, blank=True)

class Ph(Parameter):
    
    received_timestamp = models.DateTimeField(default=datetime.now, blank=True)

虽然我的Parameter 类是抽象的,但我在python manage.py makemigrations 脚本中得到models.E006 错误。

graphs.Temperature.data:(models.E006)字段“data”与模型“graphs.temperature”中的字段“data”发生冲突。

graphs.Ph.data:(models.E006)字段“data”与模型“graphs.ph”中的字段“data”发生冲突。

基于Abstract base classes和这个question,如果我从一个抽象基类继承,那么各个子类的字段名称应该不会与它们的父类冲突(因为它是抽象的)。

有什么想法吗?

【问题讨论】:

    标签: python-3.x django inheritance django-models


    【解决方案1】:

    错误与抽象基类无关。

    问题是定义IntegerField时的= integer,这意味着该字段被创建了两次。

    变化:

    data = integer = models.IntegerField(blank=True, null=True)`
    

    data = models.IntegerField(blank=True, null=True)
    

    【讨论】:

    • 每天工作8-9小时以上的结果
    猜你喜欢
    • 2012-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-16
    • 1970-01-01
    • 1970-01-01
    • 2020-04-12
    • 2011-11-23
    相关资源
    最近更新 更多