本文介绍了具有变量列的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在左边:) 了解Python中的kwargs
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查询过滤器
发布评论