0
这些是我的模特。在一行中过滤反向manytomany django?
class League(models.Model):
league_name=models.CharField(max_length=20)
league_id=models.IntegerField()
class LeagueAdministrator(models.Model):
administrator = models.ManyToManyField(User)
league = models.ManyToManyField('League')
考虑到可能存在的联盟多个管理员:我想它返回的查询与谁是具体的联赛administator的所有用户对象上设置一个查询。这就是我现在所做的。
league=League.objects.get(league_id=1)
usersids=LeagueAdministrator.objects.filter(league=league).values_list('administrator')
Administrators=User.objects.filter(id__in=usersids)
谢谢。
我不认为你的模型结构是正确的:我怀疑*非常*多少你需要在两侧ManyToManys一个LeagueAdminstrator类。相反,LeagueAdministrator本身就是多对多关系中的链接表,与ForeignKey都是双方。 – 2014-08-31 15:38:26
我不明白:如果有很多联赛和用户可以在很多联赛中踢球,该怎么办?如果你说我不需要多对多,但只需要外键:在这种情况下,我需要多对多的字段? (如果出现一个连接到我的模型的示例) – foebu 2014-08-31 15:43:38
但我的观点是,*是*多对多。任何多对多关系都有一个链接表和外键:Django ManyToManyField只是为你创建这个表,并创建一个Pythonic访问连接的方式。在你的情况下,你允许联盟和用户的每个组合都有多个联盟管理员,这是没有意义的:任何人只能成为每个团队的管理员,即使他们可以管理多个团队,每个团队都可以拥有多个管理员。 – 2014-08-31 15:54:44