У меня есть абстрактная модель и несколько других классов, которые наследуются от нее.
# 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
класс абстрактный, я получаю models.E006
ошибку в python manage.py makemigrations
скрипте.
graphs.Temperature.data: (models.E006) Поле «данные» конфликтует с полем «данные» из модели «graphs.temperature».
graphs.Ph.data: (models.E006) Поле data конфликтует с полем data из модели graphs.ph.
на основе Абстрактных базовых классов и этого вопроса, если я наследую от абстрактного базового класса, не должно быть конфликта имени полей различных дочерних классов с их родителем (потому что он абстрактный).
Любые идеи?
Ошибка не связана с абстрактным базовым классом.
Проблема заключается в = integer
, когда вы определяете IntegerField
, что означает, что поле создается дважды.
Изменять:
data = integer = models.IntegerField(blank=True, null=True)`
к
data = models.IntegerField(blank=True, null=True)
результат работы более 8-9 часов в день