2012-09-26 101 views
-1

有沒有一種方法可以像Django過濾器函數中使用表達式那樣的一個表達式。Django ORM過濾器函數

我試圖做到這一點:

models.Product.objects.filter("name_cn" = "smth") 

,並得到一個錯誤:

SyntaxError: keyword can't be an expression 

回答

1

如果name_cn是一個變量,然後把它放在一個字典,deliver the keyword arguments in your dictionary using the ** operator

models.Product.objects.filter(**{name_cn: "smth"}) 

如果"name_cn"是要過濾的字段的名稱,請嘗試:

models.Product.objects.filter(name_cn="smth") 
+0

如果「name_cn」當他寫代碼是已知的,則是他想是'models.Product.objects.filter(name_cn =「水木清華」)' – JeffS

+0

關鍵是不知道的。只是試圖寫更少的代碼 – user1454592

+0

@JeffS好抓,現在修復。 – Alasdair