Django - 使用 LoginView 的正确方法

Posted

技术标签:

【中文标题】Django - 使用 LoginView 的正确方法【英文标题】:Django - Proper Way To Use LoginView 【发布时间】:2017-05-15 16:17:09 【问题描述】:

我已经读到基于函数的登录从 1.11 开始已被弃用,而且 LoginView 从 Django 版本 1.9 开始不可用。如果我们不应该这样做,那么当前设置登录 URL 的方法是什么:

from django.contrib.auth.views import login

我们不能这样做吗?

from django.contrib.auth.views import LoginView

(后者产生No name 'LoginView' in module 'django.contrib.auth.views' 消息)

【问题讨论】:

如果您使用的是 Django 文档,请确保您使用的版本与您的 Django 版本相匹配。例如,这里是Django 1.9 和Django 1.11 的身份验证视图文档。顺便说一句,Django 1.9 已经结束,不再接收安全更新。你应该升级到 Django 1.10 或者最好是 1.11。 【参考方案1】:

Deprecated 通常意味着某些事情得到承认但不鼓励。不过,在未来的版本中,该功能肯定会被删除。

弃用意味着尽管某些东西可用或允许,但不推荐使用,或者在必须使用某些东西的情况下,说它已被弃用意味着它的缺陷已得到承认。

这并不意味着我们需要停止这样做。如上所述,建议不要这样做。登录方式仍然没有改变,但是 django 给了我们一个警告,它即将被改变。如果你必须做一个登录视图,你现在别无选择,只能使用该功能。

希望 LoginView 在即将发布的版本中可用。

【讨论】:

是的,我也是这么说的。肯定会被删除。但现在,它可用并被允许。对不对?

以上是关于Django - 使用 LoginView 的正确方法的主要内容,如果未能解决你的问题,请参考以下文章

Django LoginView 的success_url?

AttributeError:模块'django.contrib.auth.views'没有属性'LoginView'

django中的自定义登录URL

Django写的LoginView,登录成功后无法跳转回原页面,求助

Django REST EmailAddress 匹配查询不存在

雇员信息管理系统管理员数据库登录