使用GET参数查询过滤器
问题描述:
我有一个参数,如URL:使用GET参数查询过滤器
field1__lt=7&field2__contains=bar
我明白如何从cleaned_data字典获取这些值,但我怎样才能把它们变成过滤器()语句?过滤器似乎不喜欢作为字符串的键。
这仅适用于可信用户,因此不存在安全隐患。
答
使用字典拆包。如果在变量lookups
中有{'field1__lt':7, 'field2__contains':'bar'}
这样的字典,则可以编写filter(**lookups)
。
答
我想你需要在.filter方法中传递几个参数?那么你将需要使用Q对象。所以,像这样的东西会正常工作。
MyModel.objects.filter(Q(field1__lt=7)&Q(field2__contains=bar))