2014-02-07 2 views
0

У меня есть форма сказать так:Динамические URL в Django на основе критериев поиска

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) 

Я обязан иметь URLs, как это:

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

, когда кто-то ищет места, суб- категория или любое количество возможных комбинаций, например, кто-то ищет только пространство и цвет, пространство и стиль .. и т. д.? может ли он быть достигнут с помощью одного URL-адреса?

+1

вы ищете это [Http: // StackOverflow .com/вопросы/14351048/Джанго-необязательная URL-параметры] – lima

ответ

0

Указанный URL не имеет смысла для поиска - способа его структурирования для отображения подэлементов, то есть цвета, который находится в подкатегории, которая находится в пространстве, а не в поисковых запросах. Если это требование от клиента, объясните клиенту, как следует структурировать URL.

Я предложил бы использовать GET для него параметры при, как следующее:

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

По вашему мнению вы собираете поиска Params:

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) 
Смежные вопросы