我已经使用python 3.5配置了我的python env,但是当我使用命令python manage.py runserver
运行我的服务器时出现以下错误
from django.contrib.auth.views import logout
ImportError: cannot import name 'logout'
这是我的配置
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
我尝试重新安装我的环境和更改python版本,但问题仍在发生。
感谢您的问题
答案 0 :(得分:2)
嘿,看起来你使用的是错误的django版本,django.contrib.auth.views.logout
在你当前的django版本中不可用,请尝试使用此命令将django版本降级为较低版本:
sudo pip install Django==2.0.2
或更改导入以使用logout_view
答案 1 :(得分:2)
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'),
]
它在django 3.0.x上对我有用
答案 2 :(得分:1)
这适用于django 2.x
,docs
from django.contrib.auth import logout
def logout_view(request):
logout(request)
# Redirect to a success page.
答案 3 :(得分:1)
ImportError: cannot import name 'login' from 'django.contrib.auth.views'
我遇到此错误,并在这里寻找解决方案。 Remove views from import
在Python 3.7和Django 2.2中为我工作。无需降级到Django 2.0.4(因为LTS在2.2中)
正是这个原因导致了我的错误。
from django.contrib.auth.views import login
必须将其更改为
from django.contrib.auth import login
也为注销工作。
答案 4 :(得分:0)
这是我添加到urls.py
中以使登录正常工作的代码:
def my_logout(request):
logout(request)
return redirect('index')
连同urlpatterns
:
path('logout/', my_logout, name="logout"),
在Python 2.7,Django 2.1.5中为我工作!
答案 5 :(得分:0)
在最新版本的 Django (django == 3.2.4) 中,导入应该如下
from django.contrb.auth.views import LogoutView