说我有两个班:
class Bar(models.Model):
prop = IntegerField()
class Foo(models.Model):
bar = ManyToManyField(Bar)
我想返回一个包含bar的模型实例的QuerySet 匹配查询:
QuerySetOfFoos.objects.filter(bar__prop__gt=0)
有一种简单的方法吗?我知道在模型实例中我 可以做foo.bar_set,但不知道怎么做全部 原始QuerySet ...
答案 0 :(得分:0)
你的意思是这样的:
Bar.objects.filter(foo__bar__prop__gt = 0)
答案 1 :(得分:0)
如果要获取Bars的QuerySet,则需要从Bar管理器开始,即Bar.objects。这将有效:
Bar.objects.filter(foo__in=QuerySetOfFoos, prop__gt=0)
理想情况下,您应该只包含用于在查询中获取QuerySetOfFoos的任何参数。例如,如果您的Foos具有“组”和“排名”字段,并且您希望所有条形图“成员”和排名> 10,你会这样做:
Bar.objects.filter(foo__group='members', foo__rank__gt=10, prop__gt=0)