我是django的初学者,我知道你可以使用ManyToManyField来连接两个模型,比如作者-帖子-用户-组。
我怎样才能在我的代码中实现这个功能呢?
class User(models.Model):
# user fields
class Group(models.Model):
# group fields
class GroupMember(models.Model):
group = models.ForeignKey(Group, on_delete=models.DO_NOTHING, db_index=True)
user = models.ForeignKey(User, on_delete=models.DO_NOTHING, db_index=True)
IsAdmin = models.BooleanField(default=False, verbose_name='Est un admin')
class Meta:
unique_together = (("group", "user"),)
我想使用ManyToManyFields,这样我就可以在它们之间进行引用(如果我没有IsAdmin字段,我就不必创建第三个类'GroupMember')。
你可以从官方文档中找到这个例子。https:/docs.djangoproject.comen3.0topicsdbmodels#extra-fields-on-many-to-many-relationships
中间模型与ManyToManyField相关联,使用的是 通过 参数来指向将作为中介的模型。
你的模型中的Group类应该是这样的。
class Group(models.Model):
# group fields
# ...
users = models.ManyToManyField(User, through='GroupMember')