AttributeError: module 'django.contrib.auth.views' has no attribute 'login', 'logout'

from django.contrib import admin
from django.urls import path
from django.conf.urls import url, include
from blog import views
from django.contrib.auth import views


urlpatterns = [
path('admin/', admin.site.urls),
url(r'',include('blog.urls')),
url(r'accounts/login/$',views.login,name='login'),

url(r'accounts/logout/$',views.logout,name='logout',kwargs= 
{'next_page':'/'}),
]
1

There are 1 best solutions below

1
On

The function based views are deprecated, you need to use the class-based alternatives

url(r'accounts/login/$',views.LoginView.as_view(), name='login'),
url(r'accounts/logout/$',views.LogoutView.as_view(next_page='/'), name='logout'),

You're also importing views twice the first import from blog is being overridden by the import from auth