【发布时间】:2017-07-24 19:26:05
【问题描述】:
我的数据库中有三列(var1、va2 和 var3)。
在 html 页面上,用户可以输入 var1、var2 或 var3 的值或三个变量的组合(例如,仅提供 var1 和 var3 或 var2 和 var3 的数据)。
我的查询搜索是:
Rule.objects.filter(var1=user_var1, var2=user_var2, var3=user_var3, )
如果用户输入所有三个变量的值,这非常简单。
如果用户输入两个或一个变量的值,我希望查询集过滤器只匹配用户输入值的列。例如:用户为 var2 和 var3 输入数据。结果搜索将是:
Rule.objects.filter(var2=user_var2, var3=user_var3, )
但是有没有办法将所有三个变量都保留在过滤器代码中,例如:
if user_var1 = null, then user_var1=[wildcard or all]
Rule.objects.filter(var1=user_var1, var2=user_var2, var3=user_var3, )
【问题讨论】: