具有变量列的Django查询过滤器 [英] Django query filter with variable column

查看:165
本文介绍了具有变量列的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查询过滤器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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