假设我有以下内容:
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模型创建相同的相关名称。
任何想法如何单独指定每个模型的相关名称,甚至根本不使用它们?
答案 0 :(得分:7)
答案是正确的docs for abstract classes(标题为“小心related_name
”一节):
m2m = models.ManyToManyField(OtherModel, related_name="%(app_label)s_%(class)s_related")