我正在尝试实现一个人可以将另一个人添加为朋友的小项目。
我想在数据库中建模这种关系:我想,我会做另一个模型friendship
,我会这样写它的模型:
class friendship(models.Model):
friend = models.ManyToManyField(User)
这就是全部吗?我不知何故陷入了不知道如何设计这个的逻辑。我阅读了文档,但我没有以某种方式进入这一点,有人可以帮助我吗?
多谢
我正在尝试实现一个人可以将另一个人添加为朋友的小项目。
我想在数据库中建模这种关系:我想,我会做另一个模型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()