使用带有动态字段的q个对象进行django过滤 [英] django filtering with q objects with dynamic fields

查看:61
本文介绍了使用带有动态字段的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆