Django: 3-уровневый базовый класс и метакласс игнорируются?
У меня следующая установка в приложении Django 2:
class Base1(models.Model):
# ... some fields here...
class Meta:
abstract = True
unique_together = [
'brand',
'name'
]
class Base2(Base1):
# ... some more fields here...
class Meta:
abstract = True
class Concrete(Base2):
pass
В классе Concrete
, похоже, нет требования unique_together
, которое присутствует в Base1
.
Ожидается ли это? Если да, то как я могу убедиться, что Concrete
имеет ограничение, сохраняя при этом DRY?
Спасибо!
Попробуйте вывести Base2
из Meta
Base1
# ...
class Base2(Base1):
# ... some more fields here...
class Meta(Base1.Meta):
abstract = True
# ...
См. эту документацию о наследовании метаданных.