2011-08-27 141 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))