使用带有动态字段的q个对象进行django过滤 [英] django filtering with q objects with dynamic fields
本文介绍了使用带有动态字段的q个对象进行django过滤的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要准备带有动态字段的过滤器。.
我不知道字段名称,因此我需要动态给它。
这是我到目前为止所做的尝试,
I need to prepare filter with dynamic fields.. I don't know the field name so i need to give it dynamically. here what i tried so far,
gen_query = reduce(operator.or_, (Q(eval('%s=i' % (field, i))) for i in request.query_params.get(field).split(',')))
但它会引发语法错误!
but it raising syntax error!
我正在使用, eval(字段名作为字符串)
仍然出现错误。.
i am using, eval(field_name as string)
still i am getting an error..
如何实现?
我想对带有动态字段的q个对象进行django过滤
i want to do django filtering with q objects with dynamic fields
推荐答案
您可以使用参数创建字典并将其解压缩到Q构造函数中:
You can create dict with parameters and unpack it in Q constructor:
gen_query = reduce(operator.or_, (Q(**{field: i}) for i in request.query_params.get(field).split(',')))
这篇关于使用带有动态字段的q个对象进行django过滤的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文