假设我希望我的网址包含字母数字字符串参数,其中每个参数用'+'分隔,并且我们有多个参数。也就是说,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*)
任何人都知道如何做到这一点?
答案 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
或者,如果您的视图已经需要一个列表,您可以编写一个装饰器来获取该字符串,解析它并将其作为列表传递给您的视图。