当关系包含属性时,如何在django中实现多对多关系?

当关系包含属性时,如何在django中实现多对多关系?,django,django-models,many-to-many,uml,Django,Django Models,Many To Many,Uml,我是django的begginer,我知道可以使用ManyToManyField链接两个模型,比如作者发布用户组。 所以我在UML中有这个关系 如何在代码中实现这一点? 我的镜头是这样的 class User(models.Model): # user fields class Group(models.Model): # group fields class GroupMember(models.Model): group = models.ForeignKey(Grou

我是django的begginer,我知道可以使用ManyToManyField链接两个模型,比如作者发布用户组。 所以我在UML中有这个关系

如何在代码中实现这一点? 我的镜头是这样的

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"),)

我想使用许多字段,这样我可以在它们之间引用(如果我没有IsAdmin字段,我就不必创建第三类“GroupMember”)

您可以从官方文档中找到示例:

中间模型与ManyToManyField关联,使用 参数指向将用作 中间人

模型中的组类应如下所示:

class Group(models.Model):
    # group fields
    # ...
    users = models.ManyToManyField(User, through='GroupMember')