灵活搜索页面的良好实践 - Django

时间:2010-07-08 11:08:59

标签: python django django-models filter django-queryset

我只是想知道我是否可以从其他人那里得到关于这个话题的例子。

我在Django中有一个页面,它使用过滤器来执行搜索。

目前我正在对GET参数进行简单检查,并相应地向查询集添加.filter():

if color:
  query.filter(color=color)

这感觉有点像丑陋的方式,而且我有点不知道如何让它变得更有活力。

有什么想法吗?

1 个答案:

答案 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

等请求