微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Django Admin身份验证如何工作?

如何解决Django Admin身份验证如何工作?

| 我一直在查看Django的Admin应用程序的代码,以识别他们如何对用户的所有视图执行全面身份验证检查,而不知道它是如何完成的(此处为Django初学者)。 例如,在Admin \的“ 0”中,存在“ 1”视图,如果用户未通过身份验证,则根本不会调用该视图。我知道发生了一些预处理,导致调用
login
,但是我无法识别调用
login
方法。 是否有人对管理应用程序的请求流程有任何想法?     

解决方法

        这是相关的文件-django / contrib / admin / sites.py。特别是,请看第170行上的
admin_view
装饰器(在这里称为
login
)和第211行上的
wrap
装饰器,后者应用于第217行上
urlpatterns
的每个视图。(类似于
django.contrib.auth
中的
login_required
装饰器如何工作)。 基本上,每个视图都包裹在一个装饰器中,该装饰器检查用户是否可以访问管理站点(第147行,
request.user.is_active and request.user.is_staff
-请注意,如果用户未登录,那么
request.user
AnonymousUser
的实例,for13ѭ和
is_staff
是总是
False
),否则显示not2ѭ视图。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。