我只是想知道我是否可以从其他人那里得到关于这个话题的例子。
我在Django中有一个页面,它使用过滤器来执行搜索。
目前我正在对GET参数进行简单检查,并相应地向查询集添加.filter():
if color:
query.filter(color=color)
这感觉有点像丑陋的方式,而且我有点不知道如何让它变得更有活力。
有什么想法吗?
答案 0 :(得分:5)
试试这个:
ALLOWED = ('color', 'size', 'model')
kwargs = dict(
(key, value)
for key, value in request.GET.items()
if key in ALLOWED
)
query.filter(**kwargs)
这样您就可以发出/search/?color=red&size=1
或/search/?model=Nikon&color=black
。