gpt4 book ai didi

python - 使用带有变量的 Q 对象

转载 作者:行者123 更新时间:2023-12-04 08:51:01 25 4
gpt4 key购买 nike

我想以查询词来自变量的方式使用 django.db.models.Q 对象。
我想实现的目标与此相同:

q = Q(some_field__icontains='sth')
Obj.objects.filter(q)
,但 some_field 值应该来自一个变量:
field_name='some_field'
q = Q('%s__icontains=sth' % field_name)
Obj.objects.filter(q)
,但是这个解决方案当然没有给我正确的结果。
我也尝试以这种方式使用字典:
dt = {'%s__icontains' % field_name: 'sth'}
q = Q(**dt)
Obj.objects.filter(q)
,但这在结果上也失败了。
如何使用使用变量作为查询词的 Q 对象?
谢谢。

最佳答案

您可以将 2 元组传递给 Q以字段名称和查找作为第一项,值作为第二项的对象:

Obj.objects.filter(Q(('%s__icontains' % field_name, 'sth')))
这可能是最方便的方式。话虽如此,字典解包虽然不那么优雅,但也应该有效。

关于python - 使用带有变量的 Q 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64105927/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com