使用 Django 的内置模型,如何在三个模型之间创建三重连接。
例如:
- 用户、角色和事件是模型。
- 用户有很多角色,角色有很多用户。 (多对多)
- 事件有许多用户,用户也有许多事件。 (多对多)
- 但对于任何给定的事件,任何用户可能只有一个角色。
如何在模型中表示这一点?
萨切拉特 writes:
我将角色建模为用户和角色之间的关联类(...)
我也推荐这个解决方案,但你也可以使用 Django 提供的一些语法糖:具有额外字段的多对多关系 http://docs.djangoproject.com/en/dev/topics/db/models/#extra-fields-on-many-to-many-relationships.
Example:
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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)