我的Django应用程序中有以下模型。我如何从Team
模型中找到在成员资格模型中已接受为True的所有User
个对象?我知道我需要使用Team.objects.filter()
,但我不确定如何检查accepted
字段的值。
from django.contrib.auth.models import User
class Team(models.Model):
members = models.ManyToManyField(User, through="Membership")
class Membership(models.Model):
user = models.ForeignKey(User)
team = models.ForeignKey(Team)
accepted = models.BooleanField(default=False)
答案 0 :(得分:1)
接受团队成员:
team_42.members.filter(membership__accepted=True)
小组用户alice
已被接受:
alice.team_set.filter(membership__accepted=True)
我相信您希望获得Team或User对象的集合,而不是中间Membership对象的集合。你自己回答了这个问题,但答案给出了一组会员对象。
答案 1 :(得分:-1)
Team.objects.filter(members__accepted__exact=True)
看看this。它有很多很好的例子和解释。