在一行中过滤一个反向的多个django?

时间:2014-08-31 15:17:54

标签: python django django-queryset django-orm

这些是我的模特。

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')

鉴于联盟可以有多个管理员:我想要一个单一的查询,它返回一个查询集,其中包含作为特定联盟管理员的所有用户对象。这就是我现在所做的。

league=League.objects.get(league_id=1)
usersids=LeagueAdministrator.objects.filter(league=league).values_list('administrator')
Administrators=User.objects.filter(id__in=usersids)

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

administrators = League.objects.filter(leagueadministrator__league__id=1).distinct()

Documentation here