2011-05-22 54 views
0

說我希望我的URL具有字母數字字符串參數,其中每個參數用'+'分隔,並且我們有多個參數。也就是說,blah.com/1a+2b將是有效的,但blah.com/1a或blah.com/1a_2b將無效。Django URLconf中的多個參數

到目前爲止,在我的urls.py,我有:

(r'^((\w+)\+)+(\w+)$', 'XXX.views.YYY') 

和views.py:

YYY(request, name, args*) 

任何人都知道如何去這樣做呢?

回答

1

取出URLConf中的字符串並在您的視圖中進行驗證。

url(r'^(?P<params_list>(\w+)\+?)+)/$'); 

在你看來:

def my_view(request, params): 
    if not validate_params(params): # validate as you wish 
    raise Http404() 

    # continue with your view 

或者,如果您認爲已經需要一個列表,你可以寫一個裝飾拿串,分析它,並把它傳遞給您的視圖列表。