urls.py не проходит шаблон URL - PullRequest
2 голосов
/ 10 января 2012

Я только что создал запись шаблона URL для маршрутизации вещей в мое представление регистрации, но параметр не передается вообще, хотя он явно указан в URL.

Мой шаблон URL:

url(r'^register/(?P<profile_type>\w+/?$)', 'userProfile.views.register'),

Определение моего вида:

def register(request, profile_type=None):

URL-адрес, который я пытаюсь загрузить (не реальный, а пример):

http://example.com/register/user

Когда я устанавливаю точку останова pdb прямо в начале представления, profile_type имеет значение None, но URL-адрес равен http://example.com/register/user

Я попытался запустить re.match, чтобы проверить, было ли регулярное выражение неправильным, и я получил следующее:

match = re.match(r'^register/(?P<profile_type>\w+/?$)', 'register/user')
match
<_sre.SRE_Match object at 0x1004d48a0>
match.groupdict()
{'profile_type': 'user'}

Очевидно, что регулярное выражение совпадает с частью 'user' URL, но оно не передается. Я хотел бы помочь с этим.

urls.py содержит другие похожие шаблоны, и эти шаблоны работают правильно:

url(r'^user/(?P<profile_id>\d+/?$)', 'userProfile.views.registeredUser'),

Представление находится в нужном месте и вызывается правильно, но параметр не передается.

На самом деле, у меня есть предыдущий шаблон в файле, который выглядит так:

url(r'^register', 'userProfile.views.register'),

Я думаю, что это вызывается до второго паттерна и все портит ...

Ответы [ 2 ]

0 голосов
/ 11 января 2012

Поскольку я только что добавил к части вопроса, в моем файле был предыдущий шаблон, который испортил вещи:

url(r'^register', 'userProfile.views.register'),

Я изменил его на:

url(r'^register+/?$', 'userProfile.views.register'),

И теперь все отлично работает./ Facepalm

0 голосов
/ 10 января 2012

Попробуйте установить для APPEND_SLASH значение False в настройках. Подробнее см.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...