Django,如何使自我与额外的领域之间的对称关系?

时间:2017-09-11 08:12:15

标签: django django-models

我有一个对称关系的模型:

line_item_id: current_item.id

我需要一个额外的字段来解释他们的关系, 例如:自1980年以来,他们就是朋友。

 class person(models.Model):
    name = models.CharField(max_length=20)
    friends = models.ManyToManyField('self', blank= True)

如何在我的模型中添加这个额外字段? 谢谢! :)

1 个答案:

答案 0 :(得分:1)

您必须使用through表来包含该字段,例如:

class Person(models.Model):
    name = models.CharField(max_length=20)
    friends = models.ManyToManyField('self', through='Friendship', blank=True)

class Friendship(models.Model):
    person = models.ForeignKey(Person, on_delete=models.CASCADE, related_name='+')
    friend = models.ForeignKey(Person, on_delete=models.CASCADE, related_name='+')
    friends_since = models.DateField(blank=True)