我正在使用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(...)
我现在想要在评估或设置任何查询集之前为Car
和Tire
创建过滤器,即我只想要完整的{{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()
过滤器而没有任何数据集的原因。这可能吗?