本文介绍了具有变量列的Django查询过滤器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图使用
info=members.filter(name__contains=search_string)
我遇到的问题是我不知道用户想要提前搜索哪个字段,所以我需要替换'name 'with a variable as as
The problem I have is I do not know which field the user wants to search ahead of time so I need to substitute 'name' with a variable as in
variable_column = 'name'
search_type = 'contains'
filter = variable_column + '__' + search_type
info=members.filter(filter=search_string)
如何做?
Rich
推荐答案
几乎在那里。 。
members.filter(** {'string__contains':'search_string'})
要了解它在做什么,google在左边:)
To understand what it's doing, google around : )Understanding kwargs in Python
**
将字典键/值对扩展为keywo rd参数 - 值对。
**
expands dictionary key/value pairs to keyword argument - value pairs.
要使您的示例适应解决方案:
To adapt your example to the solution:
variable_column = 'name'
search_type = 'contains'
filter = variable_column + '__' + search_type
info=members.filter(**{ filter: search_string })
这篇关于具有变量列的Django查询过滤器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!