django中的动态URL基于搜索条件

时间:2014-02-07 09:10:33

标签: django django-urls

我的表格是这样的:

class ContributorSearchForm(forms.Form):
    space = forms.ChoiceField(widget = forms.Select())
    sub_category = forms.ChoiceField(widget = forms.Select(), required=False)
    style = forms.ChoiceField(widget=forms.Select(), required=False)
    colour = forms.ChoiceField(widget=forms.Select(), required=False)
    material_type = forms.ChoiceField(widget=forms.Select(), required=False)

我需要这样的网址:

www.myabc.com/space-<spacevalue>/subcategory-<sub-category-value>/style-<style-value>/colour<colour-value>/material-<material-value>

当有人搜索空间,子类别或任何可能的组合时,就像有人只搜索空间和颜色,空间和风格等等? 可以用一个网址来实现吗?

1 个答案:

答案 0 :(得分:0)

您指定的URL对于搜索没有任何意义 - 它是用于显示子项的结构,即位于空间中的子类别中的颜色,而不是搜索查询。如果这是客户的要求,请向客户解释如何构建URL。

我建议使用GET参数,如下所示:

www.myabc.com/?space=<spacevalue>&subcategory=<sub-category-value>&style=<style-value>&colour=<colour-value>&material=<material-value>

在您的视图中,您收集搜索参数:

space_filter = request.GET.get('space', None)
subcategory_filter = request.GET.get('subcategory', None)
style_filter = request.GET.get('style', None)
colour_filter = request.GET.get('colour', None)
material_filter = request.GET.get('material', None)