首页 > 解决方案 > Django 无法从 django.contrib.auth.views 导入登录

问题描述

我尝试为我的页面构建登录功能。要按如下方式编辑 urls.py,它会不断打印:

无法从“django.contrib.auth.views”导入名称“登录”

我该如何处理这个问题?

from django.contrib.auth.views import login
from django.urls import path
from . import views
app_name = "users"
urlpatterns = [
    path("login/", 
         login, 
         {"template_name": "users/login.html"}, 
         name="login"),
]

标签: pythondjangodjango-2.1

解决方案


开始,基于函数的视图login、、logout等已被重写为基于类的视图:LoginView[Django-doc]LogoutView[Django-doc]类,如发行说明中所述。“旧”的基于函数的视图仍然可以使用,但被标记为deprecated

中,旧的基于函数的视图已被删除,如发行说明中所述。

你可以这样写:

from django.contrib.auth.views import LoginView

from django.urls import path
from . import views
app_name = "users"
urlpatterns = [
    path('login/', 
        LoginView.as_view(
            template_name='users/login.html'
        ), 
        name="login"
    ),
]

推荐阅读