来自django.contrib.auth.views的Python导入注销导入错误:无法导入名称'logout'

dxxyhpgq  于 2023-01-29  发布在  Python
关注(0)|答案(7)|浏览(182)

我已经使用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

我尝试重新安装我的env和改变python版本,但问题仍然发生。
谢谢你们的提问

monwx1rj

monwx1rj1#

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

注销也有效。

8fq7wneg

8fq7wneg2#

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

pinkon5k

pinkon5k3#

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'),
]

我在django3.0.x上可以使用它

yduiuuwa

yduiuuwa4#

这是为django 2.x,docs

from django.contrib.auth import logout

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

nxowjjhe5#

这是我添加到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中都可以使用!

jchrr9hc

jchrr9hc6#

在Django的最新版本(django == 3.2.4)中,导入应该如下所示
from django.contrb.auth.views import LogoutView

hivapdat

hivapdat7#

Pyhton是非常大小写敏感的......确保你的代码与正确的空格对齐。我处理这个错误,并使在www.example.com中创建的函数views.py没有对齐

相关问题