Django URLconf中的多个参数

0 投票
1 回答
762 浏览
提问于 2025-04-16 18:06

假设我想让我的网址包含字母和数字组合的参数,每个参数之间用'+'来分隔,并且参数的数量要超过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

或者,如果你的视图已经准备好接收一个列表,你可以写一个装饰器,把字符串处理成列表,然后传递给你的视图。

撰写回答