2

我工作的一个模型类,将代表一个家庭成员的另一个的关系(家谱功能的一部分)外键与相关领域的交锋中的Django模型

我的班级是:

class FamilyLink(models.Model): 
    from_legacy = models.ForeignKey(Legacy) 
    to_legacy = models.ForeignKey(Legacy) 

    class Meta: 
     unique_together = ("from_legacy", "to_legacy") 

当我尝试和迁移我收到以下错误信息:

CommandError: One or more models did not validate: archive.familylink: Accessor for field 'from_legacy' clashes with related field 'Legacy.familylink_set'. Add a related_name argument to the definition for 'from_legacy'. archive.familylink: Accessor for field 'to_legacy' clashes with related field 'Legacy.familylink_set'. Add a related_name argument to the definition for 'to_legacy'.

这似乎我的问题是有两个指向同一类同一类中的两个外键的(在这种情况下,“尕cy“类)。有谁知道我可以如何解决/解决这个问题?

我很欣赏这些想法和专业知识。

+0

您是否尝试过加入related_name参数,像它要求

? – hankd

回答

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属性被设置,relatedname设置为familylink_set,自来自同一关系2个不同的领域,它导致的问题。了解更多关于related_name attribute here

+0

工作很好!感谢您的反馈。下次阅读/处理错误消息时,我会做得更好。 – bbrooke