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

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

我已经用 python 3.5 配置了我的 python 环境,但是当我 运行 我的服务器使用命令 python manage.py runserver[=13 时,我收到以下错误=]

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 版本,但问题仍然存在。

谢谢大家的提问

这是用于 django 2.xdocs

from django.contrib.auth import logout

def logout_view(request):
    logout(request)
    # Redirect to a success page.

嘿,你好像使用了错误的 django 版本,django.contrib.auth.views.logout 在你当前的 django 版本中不可用,请尝试使用以下命令将你的 django 版本降级到较低版本: sudo pip install Django==2.0.2 或更改导入以使用 logout_view

这是我添加到 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!

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

也为注销工作。

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

在最新版本的 Django (django == 3.2.4) 中导入应该如下

from django.contrb.auth.views import LogoutView