Django中是否存在要在Objects.filter中使用的通配符?
例如,是否有一个字符相当于这样做:
Prices.objects.filter(a = example1
,b = example2
#,c = example3
)
即。而不是评论c,我不能把c = WILDCARD或c = * ......你得到了jist。谢谢。
编辑:就像在,如果你有一个可以搜索的属性的大列表,并且你只想搜索少数几个,那么你并不会完全拥有执行这些特定搜索的大量函数。我需要一些告诉Django的字符,然后告诉SQL“这个字段无关紧要,我想要一切都在这里”......不包括字段(就像在示例中一样)只是创建了一大堆函数。
答案 0 :(得分:9)
以下是一个例子:
Foo.objects.filter(name__icontains = 'hello') #fetches all whose name field contains 'hello'
答案 1 :(得分:7)
唯一要做的是使用动态过滤的属性名称和值的字典:
filters = {"a": "example1", "b": "example2", "c": "example3" }
prices = Prices.objects.filter(**filters)
然后在运行时设置过滤器dict,根据需要添加或删除键/值对。 **过滤器是一个关键字参数。点击此处了解更多信息:
http://www.nomadjourney.com/2009/04/dynamic-django-queries-with-kwargs/