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
# ...

См. эту документацию о наследовании метаданных.

Вернуться на верх