Python 多对多字段-django模型-理解
我正在尝试实施一个小项目,其中一个人可以添加另一个人作为朋友 我想在数据库中对这种关系进行建模:我想,我将做另一个名为Python 多对多字段-django模型-理解,python,database,django,database-design,many-to-many,Python,Database,Django,Database Design,Many To Many,我正在尝试实施一个小项目,其中一个人可以添加另一个人作为朋友 我想在数据库中对这种关系进行建模:我想,我将做另一个名为友谊的模型,我将这样编写它的模型: class friendship(models.Model): friend = models.ManyToManyField(User) 就这些吗?我不知怎的陷入了逻辑,不知道如何设计这个。。我看了医生,但不知怎么的,我没说到点子上,有人能帮我一下吗 非常感谢除非您需要存储有关关系的额外信息,否则不需要创建其他模型。例如,它已经定义了基
友谊的模型,我将这样编写它的模型:
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()
除非需要存储关于关系的额外信息,否则不需要创建另一个模型。例如,它已经定义了基本关系:
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()
看看这与使用外键而不是使用多人关系有何不同?是因为Freindship模型包含Foriengkeys吗?这与使用Foreignkey而不是使用多个关系有何不同?是因为Freindship模型包含Foriengkeys吗?