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


 

python版本:

Django版本: 3.0.3

 

報錯信息:

  File "D:\python_work\learning_log\users\urls.py", line 4, in <module>
    from django.contrib.auth.views import login
ImportError: cannot import name 'login' from 'django.contrib.auth.views' (D:\python_work\learning_log\ll_env\lib\site-packages\django\contrib\auth\views.py)

 

源代碼:

"""為應用程序users定義URL模式"""

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

from . import views

urlpatterns = [
    # 登錄頁面
    url(r'^login/$',login,{'template_name':'users/login.html'},
        name='login'),
]

 

原因:

從 django-1.11開始,基於函數的登錄,注銷等視圖已被重寫為基於類的視圖: LoginView 和 LogoutView類,如 release notes中所指定的那樣.仍然可以使用“舊的”基於函數的視圖,但是被標記為已棄用.

在django-2.1中,已刪除舊的基於功能的視圖,如release notes中所述.

 

解決辦法:

"""為應用程序users定義URL模式"""

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

from . import views

urlpatterns = [
    # 登錄頁面
    url(r'^login/$',LoginView.as_view(template_name='users/login.html'),
        name='login'),
    #path('login/', LoginView.as_view(template_name='users/login.html'), name="login"),
]

app_name ='users'

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM