当前位置:  开发笔记 > 编程语言 > 正文

如何使用Django创建三重连接表

如何解决《如何使用Django创建三重连接表》经验,为你挑选了1个好方法。

使用Django的内置模型,如何在三个模型之间创建三重连接.

例如:

用户,角色和事件是模型.

用户有很多角色,而且角色很多用户.(多对多)

事件有很多用户,而用户有很多事件.(多对多)

但对于任何给定的事件,任何用户可能只有一个角色.

如何在模型中表示?



1> zuber..:

zacherates写道:

我将角色建模为用户和角色之间的关联类(...)

我也推荐这个解决方案,但你也可以使用Django提供的一些语法糖:ManyToMany与额外字段的关系.

例:

class User(models.Model):
    name = models.CharField(max_length=128)

class Event(models.Model):
    name = models.CharField(max_length=128)
    members = models.ManyToManyField(User, through='Role')

    def __unicode__(self):
        return self.name

class Role(models.Model):
    person = models.ForeignKey(User)
    group = models.ForeignKey(Event)
    date_joined = models.DateField()
    invite_reason = models.CharField(max_length=64)

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有