使用GET参数作为查询过滤器

时间:2011-08-27 17:36:13

标签: django

我的网址包含以下参数:

field1__lt=7&field2__contains=bar

我理解如何从cleaning_data dict中获取这些值,但是如何将它们放入filter()语句中?过滤器似乎不喜欢键是一个字符串。

这仅适用于受信任的用户,因此不存在任何安全问题。

2 个答案:

答案 0 :(得分:1)

使用dict解压缩。如果您在变量{'field1__lt':7, 'field2__contains':'bar'}中有lookups这样的词典,那么您可以写filter(**lookups)

答案 1 :(得分:0)

我认为你需要在.filter方法中传递一些参数?然后你需要使用Q对象。所以,这样的事情会正常工作。

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