don*_*yor 1 python database django database-design many-to-many
我正在尝试实施一个小项目,其中一个人可以添加另一个人作为朋友.
我想在数据库中建模这种关系:我想,我会做另一个叫做的模型friendship,我会写这样的模型:
class friendship(models.Model):
friend = models.ManyToManyField(User)
Run Code Online (Sandbox Code Playgroud)
这都是?我不知何故陷入逻辑而不知道如何设计这个...我读了文档,但我不知道怎么回事,有人可以帮助我.
非常感谢
除非您需要存储有关关系的额外信息,否则不需要创建另一个模型.例如,它已经定义了基本关系:
class User(models.Model):
...
friends = models.ManyToManyField(self) # self means User.
Run Code Online (Sandbox Code Playgroud)
如果你想存储额外的信息,比如哪种朋友,他们有多接近.那你需要一个额外的模型.
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()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1615 次 |
| 最近记录: |