我的models.py
中有一个类的层次结构。我希望我定义的所有实际表都具有相同的unique_together
约束。所以我想将它放在它们都继承的基类的Meta
类中。当然,这个基类还需要在它的abstract = True
类中指定Meta
,并且我不希望继承类是抽象的。
我是否必须多次指定相同的unique_together
约束,对于从抽象基类继承的每个非抽象类一次?
答案 0 :(得分:3)
当创建抽象基类时,Django使您在基类中声明的任何Meta内部类可用作属性。如果子类没有声明它自己的Meta类,它将继承父类的Meta。如果孩子想要扩展父类的Meta类,它可以将其子类化。
还有:
Django确实对抽象基类的Meta类进行了一次调整:在安装Meta属性之前,它设置abstract = False。这意味着抽象基类的子项本身不会自动成为抽象类。当然,您可以创建一个继承自另一个抽象基类的抽象基类。你只需要记住每次都明确设置abstract = True。