Django抽象模型与M2M领域

时间:2011-12-08 20:37:36

标签: django many-to-many

假设我有以下内容:

class Base(Model):
    m2m_1 = ManyToManyField("SomeModel1")
    m2m_2 = ManyToManyField("SomeModel2")

    class Meta:
        abstract = True

class A(Base):
    def __init__(self):
        super(A, self).__init__()
    pass

class B(Base):
    def __init__(self):
        super(B, self).__init__()
    pass

但是,我不能这样做,因为它需要M2M字段的相关名称。但是,这没有用,因为模型是抽象的,并且django试图为A和B模型创建相同的相关名称。

任何想法如何单独指定每个模型的相关名称,甚至根本不使用它们?

1 个答案:

答案 0 :(得分:7)

答案是正确的docs for abstract classes(标题为“小心related_name”一节):

m2m = models.ManyToManyField(OtherModel, related_name="%(app_label)s_%(class)s_related")