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>[^/]+)/$'