繁体   English   中英

多对多字段-Django模型-了解

[英]many to many field - django model - understanding

我正在尝试实施一个小项目,一个人可以将另一个人添加为朋友。

我想在数据库中建立这种关系的模型:我想,我将做另一个称为friendship模型,并且我将这样写它的模型:

class friendship(models.Model):
  friend = models.ManyToManyField(User)

这是全部吗? 我不知所措地陷在逻辑中,不知道该如何设计。.我读了文档,但不知何故,有人可以帮帮我。

非常感谢

除非您需要存储有关关系的其他信息,否则实际上不需要创建其他模型。 例如,它已经定义了基本关系:

class User(models.Model):
  ...
  friends = models.ManyToManyField(self) # self means User.

如果您想存储其他信息,例如哪种类型的朋友,他们有多亲密。 然后,您需要一个额外的模型。

class User(models.Model):
    ...
    friends = models.ManyToManyField(self, through='Friendship')


class Friendship(models.Model):
    from_user = models.ForeignKey(User, related_name="from_user")
    to_user = models.ForeignKey(User, related_name="to_user")
    friend_type = models.CharField(max_length=255)
    friend_rated = models.FloatField()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM