gpt4 book ai didi

python - 多对多领域 - Django 模型 - 理解

转载 作者:搜寻专家 更新时间:2023-10-30 21:51:33 24 4
gpt4 key购买 nike

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

我想在数据库中对这种关系建模:我想,我会做另一个名为friendship 的模型,我会这样写它的模型:

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

就这些了吗?我不知何故陷入了逻辑,不知道如何设计这个。我阅读了文档,但不知何故我没有说到重点,有人可以帮我吗。

非常感谢

最佳答案

除非您需要存储额外的关系信息,否则真的不需要创建另一个模型。例如,它已经定义了基本关系:

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

如果你想存储额外的信息,比如什么样的 friend ,他们有多亲密。然后你需要一个额外的模型。

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()

关于python - 多对多领域 - Django 模型 - 理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15863170/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com