2014-09-28 2 views
2

У меня есть следующий URLPATTERN:Отдельный вопрос параметр характера в Django URL

url(r'exp/users/(?P<userid>\w.+)/$', 'myapp.views.users_view_by_id', name='users_id'), 

Когда идент одна цифра (например, «1») я получаю 404 страница не найдена, но когда это больше, чем один цифра, страница отвечает как ожидалось (например, «10»).

Так '../exp/users/10/' работает отлично, но '.../exp/users/1/' возвращает 404.

ответ

3

У вас есть дополнительный . в вашем регулярном выражении.

\w.+ означает «один буквенно-цифровой символ, затем один или несколько символов». То, что вы хотите, это всего лишь \w+, что означает «один или несколько буквенно-цифровых символов».

Редактировать

Если вы хотите включить литерал "" в символах, которые могут быть приняты, используйте квадратные скобки для определения класса:

(?P<userid>[\w.]+) 
+0

Некоторые идентификаторы входят в комплект. (например, «user.1234»), поэтому я включил a. Как я могу обрабатывать оба сценария? – greenafrican

0

Если вы хотите, чтобы соответствовать одна или несколько цифр, а затем использовать (?P<userid>\d+).

Вашему текущему регулярному выражению требуется один символ в соответствии с \w ', за которым следует хотя бы один символ в соответствии с .+.

Смежные вопросы