嵌套django Q对象以过滤关系

时间:2018-01-25 09:21:33

标签: python django

我正在使用Django 2.0,并且正在从我想要存储在数据库中的用户输入生成一个相当复杂的过滤器。

假设我有以下型号:

class Car(models.Model):
    brand = models.CharField(...)
    doors = models.PositiveIntegerField(...)

class Tire(models.Model):
    car = models.ForeignKey(Car, related_name="tires")
    radius = models.FloatField(...)
    color = models.CharField(...)

我现在想要在评估或设置任何查询集之前为CarTire 创建过滤器,即我只想要完整的{{1}对象:

Q()

我现在如何my_filter = Q(brand__startswith='Volks') & Q(doors=4) my_tire_filter = Q(radius__range=(1.0, 2.0) & Q(color=black)) 模型创建另一个Q对象,为我提供满足Car且轮胎满足my_filter的车辆?像

这样的东西
my_tire_filter

我想将这些序列化的my_car_filter = my_filter & Q(tires=my_tire_filter) the_cars = Car.objects.get(my_car_filter) 对象存储在数据库中,这就是我需要纯Q()过滤器而没有任何数据集的原因。这可能吗?

0 个答案:

没有答案