Django抽象模型与M2M领域

aem*_*mdy 1 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
Run Code Online (Sandbox Code Playgroud)

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

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

Chr*_*att 8

答案恰好在抽象类文档中(在"小心related_name"一节中):

m2m = models.ManyToManyField(OtherModel, related_name="%(app_label)s_%(class)s_related")
Run Code Online (Sandbox Code Playgroud)