python - Django 1.9.1 NoReverseMatch when using django.auth -


i'm trying learn django following book "django example" , due conflicting versions i'm running problem when trying use django.auth url settings in settings.py. im getting totally frustrated since have no idea how begin debugging error. or advice appreciated here's relevant part of settings.py file

from django.core.urlresolvers import reverse_lazy login_redirect_url = reverse_lazy('dashboard') login_url = reverse_lazy('login') logout_url = reverse_lazy('logout') 

app views.py:

from django.shortcuts import render, redirect django.shortcuts import httpresponse django.contrib.auth import authenticate, login, logout .forms import loginform django.contrib.auth.decorators import login_required # create views here. @login_required def dashboard(request):     return render(request, 'account/dashboard.html', {'section': 'dashboard'}) 

urls.py

from django.conf.urls import url . import views  app_name = 'account' urlpatterns = {     url(r'^$', views.dashboard, name='dashboard'),     url(r'^login/$', 'django.contrib.auth.views.login', name='login'),     url(r'^logout/$', 'django.contrib.auth.views.logout', name='logout'),     url(r'^logout-then-login/$', 'django.contrib.auth.views.logout_then_login', name='logout_then_login'), } 

main urls.py :

from django.conf.urls import url, include django.contrib import admin  urlpatterns = [     url(r'^admin/', admin.site.urls),     url(r'^account/', include('account.urls')),  ] 

error message

updated settings.py :

login_redirect_url = reverse_lazy('account:dashboard') login_url = reverse_lazy('account:login') logout_url = reverse_lazy('account:logout') 

when use app_name sets namespace used when include() urls.py somewhere else.

so there's no url name "login", instead it's called "account:login", , that's name have pass reverse().

login_redirect_url = reverse_lazy('account:dashboard') login_url = reverse_lazy('account:login') logout_url = reverse_lazy('account:logout') 

relevant docs: url namespaces , included urlconfs

if using django-extensions (you should), can use management command show_urls nicely formatted list of url routes registered in project.


Comments

Popular posts from this blog

java - pagination of xlsx file to XSSFworkbook using apache POI -

Unlimited choices in BASH case statement -

apache - How do I stop my index.php being run twice for every user -