我的数据库结构如下所示:
Person
name
Group
name
PersonGroup
id
person_id
group_id
InvitedPersonGroup
person_group_id
invited_reason
通过PersonGroup,个人和组之间存在多对多关系,但有时由于这些人收到邀请,这种关系将是唯一的,并且这种关系应该通过InvitedPersonGroup
如何动态地使用through
class Group(models.Model):
name = models.CharField(max_length=128)
members = models.ManyToManyField(Person,
through='PersonGroup or InvitedPersonGroup')
def __unicode__(self):
return self.name
对于您的用例,可以使用
invited_reason
和null
来保持模型的简单对于非常复杂的关系,请记住,多对多关系可以在没有“ManyToManyField”的情况下手动创建,即使没有“through”字段,也可以在实体之间保存多种类型的关系:
这意味着任何关系都可以根据需要进行定制
相关问题 更多 >
编程相关推荐