具有动态字段-值对列表的Django模型过滤器
如果有一种方法可以传递值列表,这些值的大小取决于用户发送的值。这是用户查询的基本要求 例如,假设一个模型有3个字段,如下所示具有动态字段-值对列表的Django模型过滤器,django,django-models,django-forms,Django,Django Models,Django Forms,如果有一种方法可以传递值列表,这些值的大小取决于用户发送的值。这是用户查询的基本要求 例如,假设一个模型有3个字段,如下所示 class MyModel(models.Model) Fiedl1 //say an int field Field2 //int field Field3 //char field 在用户搜索表单中,所有字段都是可选的,用户可以查询特定对象的三种组合 用户未在表单中设置任何字段(默认url可能为句柄) 用户仅为两个字段设置值 用户设置查询的所有值。
class MyModel(models.Model)
Fiedl1 //say an int field
Field2 //int field
Field3 //char field
在用户搜索表单中,所有字段都是可选的,用户可以查询特定对象的三种组合
q_objects = Q()
for field, value in data:
q_objects |= Q(**{field: value})
queryset = MyModel.objects.filter(q_objects)
可以使用Q对象
它看起来是这样的:
q_objects = Q()
for field, value in data:
q_objects |= Q(**{field: value})
queryset = MyModel.objects.filter(q_objects)