2011-05-22 75 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 

或者,如果您认为已经需要一个列表,你可以写一个装饰拿串,分析它,并把它传递给您的视图列表。