我正在研究一个模型类,它将代表一个家庭成员与另一个家庭成员的关系(一部分基因学特征)
我的班级是:
class FamilyLink(models.Model):
from_legacy = models.ForeignKey(Legacy)
to_legacy = models.ForeignKey(Legacy)
class Meta:
unique_together = ("from_legacy", "to_legacy")
当我尝试迁移时,收到以下错误消息:
CommandError:一个或多个模型未验证:archive.familylink: 字段'from_legacy'的访问者与相关字段发生冲突 'Legacy.familylink_set'。将related_name参数添加到定义中 为'from_legacy'。 archive.familylink:字段'to_legacy'的访问者 与相关字段'Legacy.familylink_set'发生冲突。添加related_name “to_legacy”定义的参数。
似乎我的问题是在同一个类中有两个foreignKey都指向同一个类(在本例中是“Legacy”类)。有谁知道如何解决/解决这个问题?
我很欣赏这些想法和专长。
答案 0 :(得分:6)
错误信息非常明确:
class FamilyLink(models.Model):
from_legacy = models.ForeignKey(Legacy, related_name = 'familylink_from_legacy')
to_legacy = models.ForeignKey(Legacy, related_name = 'familylink_to_legacy')
默认情况下,如果未设置related_name
属性,则相关名称设置为familylink_set
,并且由于来自同一关系的2个不同字段,会导致问题。