如果有办法传递一个值列表,这些值的大小会根据用户发送的值而变化。这是用户查询的基本要求。
例如,假设一个模型如下,它有3个字段。
class MyModel(models.Model)
Fiedl1 //say an int field
Field2 //int field
Field3 //char field
在用户搜索表单中,所有字段都是可选字段,用户可以使用三种组合查询特定对象。
我的理解是只传递POST请求中的可用字段就可以了。我怎样才能做到这一点?我为此寻找正确且编码较少的解决方案。
答案 0 :(得分:0)
您可以使用Q对象Link
看起来像这样:
q_objects = Q()
for field, value in data:
q_objects |= Q(**{field: value})
queryset = MyModel.objects.filter(q_objects)