2016-11-22 66 views
1

我的方法接受一个字符串参数,它基本上是一个db列的名称。Django对象按参数名称筛选

我可以做这样的事情:

original_message = "Let it go" 
    language = "english" 
    ads = Ad.objects.filter(language=original_message) 

其中语言是不是一个名字,而是一个字符串的引用?这将节省我很多,如果别的行

+0

是的,但我搜索了类似的问题之前,和这没有出现。所以我不能回答这个问题。我的问题非常具体,我相信很多用户会觉得它很有用 – Dejell

+0

也许更好的重复会有帮助吗? [如何在Django查询中动态提供查找字段名称?](http://stackoverflow.com/q/1227091/1324033) – Sayse

+0

是的。这是相同的 – Dejell

回答

4

过滤器接受关键字参数的个数列表,以便你可以用它来你的优势 - 加上开箱

original_message = "Let it go" 
language = "english" 
ads = Ad.objects.filter(**{language:original_message}) 
+0

哇,让我试试吧。谢谢老兄,很快! – Dejell

+0

不用担心...我宁愿让这封闭作为一个副本,所以我会删除这个答案,如果它被关闭 – Sayse

+1

看到我上面的评论 – Dejell