0

假设我希望我的 URL 具有字母数字字符串参数,其中每个参数由“+”分隔,并且我们有多个参数。也就是说,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*)

有人知道该怎么做吗?

4

1 回答 1

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

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

于 2011-05-22T10:12:04.680 回答