Django - 是继承的模型元数据吗?

时间:2014-10-31 17:32:52

标签: django django-models

我的models.py中有一个类的层次结构。我希望我定义的所有实际表都具有相同的unique_together约束。所以我想将它放在它们都继承的基类的Meta类中。当然,这个基类还需要在它的abstract = True类中指定Meta,并且我不希望继承类是抽象的。

我是否必须多次指定相同的unique_together约束,对于从抽象基类继承的每个非抽象类一次?

1 个答案:

答案 0 :(得分:3)

基于documentation

  

当创建抽象基类时,Django使您在基类中声明的任何Meta内部类可用作属性。如果子类没有声明它自己的Meta类,它将继承父类的Meta。如果孩子想要扩展父类的Meta类,它可以将其子类化。

还有:

  

Django确实对抽象基类的Meta类进行了一次调整:在安装Meta属性之前,它设置abstract = False。这意味着抽象基类的子项本身不会自动成为抽象类。当然,您可以创建一个继承自另一个抽象基类的抽象基类。你只需要记住每次都明确设置abstract = True。