TypeError: login() got an unexpected keyword argument 'template_name'

最近在跟着《Python 编程从入门到实践》学web应用程序开发。在使用Django提供的默认登录视图来实现登录界面功能时出现报错:TypeError: login() got an unexpected keyword argument 'template_name’
原来,作者使用的Django是版本是1.0的,其实现代码为:

from django.contrib.auth import login
url(r'^login/$',login,{'template_name'='users/login.html'},name='login')

但是,在Django2.0中内置登陆视图不再是函数,而是类,位置在django.contrib.auth.views.LoginView,具体实现为:

from django.conf.urls import url
from django.contrib.auth.views import LoginView
urlpatterns = [
    #登录界面  LoginView.as_view后面要加上()
    url(r'^login/$',LoginView.as_view(template_name='users/login.html'),name='login')
]

参考自:

https://blog.csdn.net/lipei_csdn/article/details/84829045

你可能感兴趣的:(TypeError: login() got an unexpected keyword argument 'template_name')