学习《跟老齐学Python Django实战》一书的内容时,书中介绍了使用内置的登陆视图函数来实现登陆,这样可以省去编写这个视图函数的麻烦,作者使用的是Django1.10,内置视图的位置是django.contrib.auth.views.login,这是一个函数,如果使用的Django是版本是1.0的,按照书中的方法使用应该没有任何问题。但是如果使用的是Django2.0呢?
Django2.0的内置登陆视图不再是函数,而是类,位置在django.contrib.auth.views.LoginView。
类视图有个as_view方法,这个方法来自父类,位置在django.views.generic.base.View.as_view。
template_name是类视图中的一个变量,默认值是’registration/login.html’,通过向as_view传入参数template_name='account/login.html’可以修改这个变量值。