Django URLconf: ошибка 404

urls.py в корне проекта

url(r'^people/',include('profiles.urls'))

профили /urls.py

urlpatterns = patterns('profiles.views',
url(r'^me/$','home',name='profile_home'),
url(r'^(?P<user_name>[^/])/$','public_profile',name='user_public_profile'),
url(r'^signup/$','register_user',name='signup')
)

Я получаю сообщение об ошибке 404, и Django не может найти URL-адрес, когда я печатаю для существующих пользователей, таких как /people/alice в то время как другие два шаблона для профиля дома и регистрации работают нормально. Фактически, вчера все работало нормально, но не сейчас, и я не могу найти проблему.

Сообщение об ошибке:

Django tried these URL patterns, in this order:
....
....    
^people/ ^me/$ [name='profile_home']
^people/ ^(?P<user_name>[^/])/$ [name='user_public_profile']
^people/ ^signup/$ [name='signup']

2 ответа

Решение

Неправильный шаблон регулярных выражений в URL

url(r'^(?P<user_name>[^/])/$','public_profile',name='user_public_profile'),

Измените это, чтобы использовать [\w]+

url(r'^(?P<user_name>[\w]+)/$','public_profile',name='user_public_profile'),

Ваше регулярное выражение позволяет только одному символу соответствовать имени пользователя. Вам нужно добавить +:

r'^(?P<user_name>[^/]+)/$'
Другие вопросы по тегам