Несколько параметров в Django URLconf - PullRequest
0 голосов
/ 22 мая 2011

Скажем, я хочу, чтобы у моих 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*)

Кто-нибудь знает, как это сделать?

1 Ответ

1 голос
/ 22 мая 2011

Возьмите строку в вашем 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

Или, если ваше представление уже ожидает список, вы можете написатьдекоратор, чтобы взять строку, разобрать ее и передать в виде списка.

...