繁体   English   中英

Python 来自 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 env 配置了 python 3.5,但是当我使用命令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 版本,但问题仍然发生。

谢谢你们的提问

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

我遇到了这个错误,并在此处查找了解决方案。 从导入中删除视图

在 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

也用于注销。

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

设置.py

LOGIN_REDIRECT_URL = '/'
LOGOUT_REDIRECT_URL = '/'

网址.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 2.x文档

from django.contrib.auth import logout

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

这是我添加到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 中为我工作!

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

from django.contrb.auth.views import LogoutView

Pyhton 非常区分大小写……确保您的代码与正确的空格对齐。 我 go 这个错误和 make 在 views.py 中创建的函数没有对齐

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM