Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python from django.contrib.auth.views import logout ImportError: cannot import name 'logout'

I have configured my python env with python 3.5, but I am getting the following error when I run my server with the command python manage.py runserver

from django.contrib.auth.views import logout
ImportError: cannot import name 'logout'

this is my config

dj-database-url==0.5.0
Django==2.1a.1
gunicorn==19.8.1
numpy==1.14.3
psycopg2==2.7.4
pytz==2018.4
whitenoise==4.0b4

I tried reinstalling my env and changing python version but issue stills happening.

Thanks for your questions guys

like image 315
MenoTx Avatar asked Jun 03 '18 17:06

MenoTx


3 Answers

ImportError: cannot import name 'login' from 'django.contrib.auth.views'

I had this error and looked up for a solution found it here. Remove views from import

Works for me in Python 3.7 and Django 2.2. No need to downgrade to Django 2.0.4(as LTS is in 2.2)

It was this one that caused me the error.

from django.contrib.auth.views import login

Had to change it to

from django.contrib.auth import login

Worked for logout too.

like image 102
Venkatesh Gotimukul Avatar answered Oct 20 '22 06:10

Venkatesh Gotimukul


Hey looks like you are using the wrong django version, django.contrib.auth.views.logout is not available in your current django version, try downgrading your django version to a lower version with this command: sudo pip install Django==2.0.2 or change the import in order to use logout_view

like image 4
Juanse Avatar answered Oct 20 '22 05:10

Juanse


settings.py

LOGIN_REDIRECT_URL = '/'
LOGOUT_REDIRECT_URL = '/'

urls.py

from django.conf.urls import url
from django.contrib.auth.views import LogoutView

urlpatterns = [
    url(r'^logout$', LogoutView.as_view(), name='logout'),
]

it's work for me on django 3.0.x

like image 3
Vinh Tuong Luu Avatar answered Oct 20 '22 04:10

Vinh Tuong Luu