【问题标题】:Django, How to make symmetric relationship between self with extra field?Django,如何在自我与额外领域之间建立对称关系?
【发布时间】:2018-02-19 10:02:29
【问题描述】:

我有一个对称关系模型:

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

我需要一个额外的字段来解释他们的关系, 例如:他们从 1980 年就成为了朋友。

be_friend_since = models.DateField(blank = True)

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

【问题讨论】:

标签: django django-models


【解决方案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)

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2011-05-06
  • 1970-01-01
  • 2021-12-20
  • 1970-01-01
  • 2022-01-20
  • 2021-10-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多