我有三个不同的抽象模型基类。 。 。我想在多重继承中使用它们,有点像Mixins。这有什么问题吗?
如,
class TaggableBase(models.Model):
. . .
class Meta:
abstract = True
class TimeStampedBase(models.Model):
. . .
class Meta:
abstract = True
class OrganizationalBase(models.Model):
. . .
class Meta:
abstract = True
class MyTimeStampedTaggableOrganizationalModel(OrganizationalBase, TimeStampedBase, TaggableBase):
. . .
答案 0 :(得分:10)
我一直用我的类和模型类来做这件事。在我看来,这是Python中最好的东西之一。
答案 1 :(得分:10)
如果您在班级中使用任何字段 ,请继承models.Model
。
否则Django将忽略这些字段(Python中的属性仍然存在,但DB中不会创建任何字段)。设置abstract = True
以获得" mixin"喜欢的行为(即没有为mixin创建DB表,但是对于使用这些mixin的模型)。
如果您不使用任何字段,则可以继承object
,以保持简单明了。
答案 2 :(得分:6)