Django查找重用查询集的多个模型

时间:2017-12-12 19:12:12

标签: django

假设我想得到一份房屋清单,房主的汽车座位是红色的。

我可以这样做:

queryset.filter(owner__cars__seats__color='red')

但是,我想重新使用过滤器获取红色座位的汽车,所以我在汽车上有一个自定义的Queryset。

class CarsQuerySet(models.QuerySet):
    def with_red_seats(self):
         return self.filter(seats__color='red')

有没有办法在第一个查询中重复使用“with_red_seats”过滤器?

像这样的东西,它似乎不起作用:

queryset.filter(owner__cars__with_red_seats)

1 个答案:

答案 0 :(得分:1)

如果您想重复使用:

red_seated_cars = Cars.objects.with_red_seats()
House.objects.filter(owner__cars__in = red_seated_cars)

可能会做到这一点