2011-08-27 118 views
0

我有一个参数,如URL:使用GET参数查询过滤器

field1__lt=7&field2__contains=bar 

我明白如何从cleaned_data字典获取这些值,但我怎样才能把它们变成过滤器()语句?过滤器似乎不喜欢作为字符串的键。

这仅适用于可信用户,因此不存在安全隐患。

回答

1

使用字典拆包。如果在变量lookups中有{'field1__lt':7, 'field2__contains':'bar'}这样的字典,则可以编写filter(**lookups)

0

我想你需要在.filter方法中传递几个参数?那么你将需要使用Q对象。所以,像这样的东西会正常工作。

MyModel.objects.filter(Q(field1__lt=7)&Q(field2__contains=bar))