Django URLconf中的多个参数
假设我想让我的网址包含字母和数字组合的参数,每个参数之间用'+'来分隔,并且参数的数量要超过1个。也就是说,像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 个回答
1
在你的URL配置中,拿到字符串,然后在你的视图里进行验证。
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
或者,如果你的视图已经准备好接收一个列表,你可以写一个装饰器,把字符串处理成列表,然后传递给你的视图。