Я новичок в Django.Django не может разрешить имя URL-адреса
Код, похоже, не в состоянии разрешить мой URL-адрес «login», и я требую вашей помощи для продолжения моей разработки.
Ниже исключение я получаю:
Environment:
Request Method: GET
Request URL: http://localhost:9999/bz/logout/
Django Version: 1.7
Python Version: 3.4.1
Installed Applications:
('django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'bz')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware')
Traceback:
File "D:\Python34\lib\site-packages\django\core\handlers\base.py" in get_response
111. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "D:\dev\python\eli\bz\views.py" in user_logout
102. return HttpResponseRedirect(reverse('login'), {'logged_out_success_message': user.username + " logged out successfully"})
File "D:\Python34\lib\site-packages\django\core\urlresolvers.py" in reverse
546. return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
File "D:\Python34\lib\site-packages\django\core\urlresolvers.py" in _reverse_with_prefix
463. (lookup_view_s, args, kwargs, len(patterns), patterns))
Exception Type: NoReverseMatch at /bz/logout/
Exception Value: Reverse for 'login' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
Это мой urls.py:
from django.conf.urls import patterns, url
from bz import views
urlpatterns = patterns('',
(r'^$', views.index),
url(r'^login/$', views.user_login, name='login'),
(r'^logout/$', views.user_logout),
(r'^register/$', views.register),
)
И это проблемный участок, где разрешение не удается:
def user_logout(request):
user = request.user
if user.is_authenticated:
logout(request)
return HttpResponseRedirect(reverse('login'), {'logged_out_success_message': user.username + " logged out successfully"})
else:
return render(request, 'bz/index.html', {})
Ваша помощь будет оценена.
спасибо.
В чем причина написания собственных функций входа и выхода из системы? Вы можете легко использовать декоратор '' @ login_required'' и включить в свой urls.py шаблоны из django.contrib.auth.views. – cezar
Ну, так как я использую расширенную модель USerProfile, логина пользователя достаточно, потому что существование пользователя и его успешный вход в систему не подтверждают автоматическую проверку того, связан ли этот пользователь с UserProfile. – dotaneli