Django URLconf中的多个参数

时间:2011-05-22 03:22:34

标签: python django parameters urlconf

假设我希望我的网址包含字母数字字符串参数,其中每个参数用'+'分隔,并且我们有多个参数。也就是说,blah.com/1a+2b是有效的,但blah.com/1a或blah.com/1a_2b无效。

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

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

并在views.py中:

YYY(request, name, args*)

任何人都知道如何做到这一点?

1 个答案:

答案 0 :(得分: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

或者,如果您的视图已经需要一个列表,您可以编写一个装饰器来获取该字符串,解析它并将其作为列表传递给您的视图。