2012-09-26 66 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