假设我想得到一份房屋清单,房主的汽车座位是红色的。
我可以这样做:
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)
答案 0 :(得分:1)
如果您想重复使用:
red_seated_cars = Cars.objects.with_red_seats()
House.objects.filter(owner__cars__in = red_seated_cars)
可能会做到这一点