在Django的模板中使用认证数据的方法


Posted in Python onJuly 23, 2015

当前登入的用户以及他(她)的权限可以通过 RequestContext 在模板的context中使用。

注意

从技术上来说,只有当你使用了 RequestContext这些变量才可用。 并且TEMPLATE_CONTEXT_PROCESSORS 设置包含了 “django.core.context_processors.auth” (默认情况就是如此)时,这些变量才能在模板context中使用。 TEMPLATE_CONTEXT_PROCESSORS 设置包含了 "django.core.context_processors.auth" (默认情况就是如此)时,这些变量才能在模板context中使用。

当使用 RequestContext 时, 当前用户 (是一个 User 实例或一个 AnonymousUser 实例) 存储在模板变量 {{ user }} 中:

{% if user.is_authenticated %}
 <p>Welcome, {{ user.username }}. Thanks for logging in.</p>
{% else %}
 <p>Welcome, new user. Please log in.</p>
{% endif %}

这些用户的权限信息存储在 {{ perms }} 模板变量中。

你有两种方式来使用 perms 对象。 你可以使用类似于 {{ perms.polls }} 的形式来检查,对于某个特定的应用,一个用户是否具有 任意 权限;你也可以使用 {{ perms.polls.can_vote }} 这样的形式,来检查一个用户是否拥有特定的权限。

这样你就可以在模板中的 {% if %} 语句中检查权限:

{% if perms.polls %}
 <p>You have permission to do something in the polls app.</p>
 {% if perms.polls.can_vote %}
  <p>You can vote!</p>
 {% endif %}
{% else %}
 <p>You don't have permission to do anything in the polls app.</p>
{% endif %}
Python 相关文章推荐
python爬虫实战之最简单的网页爬虫教程
Aug 13 Python
python实现壁纸批量下载代码实例
Jan 25 Python
TensorFlow模型保存/载入的两种方法
Mar 08 Python
Python Scapy随心所欲研究TCP协议栈
Nov 20 Python
Python3转换html到pdf的不同解决方案
Mar 11 Python
解决Django layui {{}}冲突的问题
Aug 29 Python
对python中assert、isinstance的用法详解
Nov 27 Python
PIL包中Image模块的convert()函数的具体使用
Feb 26 Python
python为QT程序添加图标的方法详解
Mar 09 Python
如何打包Python Web项目实现免安装一键启动的方法
May 21 Python
Python如何基于Tesseract实现识别文字功能
Jun 05 Python
python opencv通过按键采集图片源码
May 20 Python
在Django中管理Users和Permissions以及Groups的方法
Jul 23 #Python
Django中对通过测试的用户进行限制访问的方法
Jul 23 #Python
在Django中限制已登录用户的访问的方法
Jul 23 #Python
详解Django框架中用户的登录和退出的实现
Jul 23 #Python
在Django的session中使用User对象的方法
Jul 23 #Python
Django的session中对于用户验证的支持
Jul 23 #Python
在Django的视图(View)外使用Session的方法
Jul 23 #Python
You might like
PHP编码转换函数 自动转换字符集支持数组转换
2012/12/16 PHP
php中字符集转换iconv函数使用总结
2014/10/11 PHP
用JS控制回车事件的代码
2011/02/20 Javascript
JavaScript获取/更改文本框的值的实例代码
2013/08/02 Javascript
JQuery文本改变触发事件如聚焦事件、失焦事件
2014/01/15 Javascript
动态创建script标签实现跨域资源访问的方法介绍
2014/02/28 Javascript
javascript中attribute和property的区别详解
2014/06/05 Javascript
Jquery中CSS选择器用法分析
2015/02/10 Javascript
jQuery实现手机号码输入提示功能实例
2015/04/30 Javascript
AngularJS的一些基本样式初窥
2015/07/27 Javascript
jQuery实现可展开合拢的手风琴面板菜单
2015/09/15 Javascript
JS实现部分HTML固定页面顶部随屏滚动效果
2015/12/24 Javascript
Vuejs第七篇之Vuejs过渡动画案例全面解析
2016/09/05 Javascript
详解webpack2+node+react+babel实现热加载(hmr)
2017/08/24 Javascript
帝国cms首页列表页实现点赞功能
2017/10/30 Javascript
ionic使用angularjs表单验证(模板验证)
2018/12/12 Javascript
uniapp微信小程序实现一个页面多个倒计时
2020/11/01 Javascript
[46:14]VGJ.T vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python中下划线的使用方法
2015/03/27 Python
Python学习笔记整理3之输入输出、python eval函数
2015/12/14 Python
解决pandas使用read_csv()读取文件遇到的问题
2018/06/15 Python
解决Pycharm下面出现No R interpreter defined的问题
2018/10/29 Python
python3的print()函数的用法图文讲解
2019/07/16 Python
Python3并发写文件与Python对比
2019/11/20 Python
一文了解python 3 字符串格式化 F-string 用法
2020/03/04 Python
python 带时区的日期格式化操作
2020/10/23 Python
bonprix匈牙利:女士、男士和儿童服装
2019/07/19 全球购物
电子商务专业学生的学习自我评价
2013/10/27 职场文书
领班岗位职责范文
2014/02/06 职场文书
2015建军节87周年演讲稿
2015/03/19 职场文书
2015年打非治违工作总结
2015/04/02 职场文书
学生检讨书怎么写
2015/05/07 职场文书
企业百日安全活动总结
2015/05/07 职场文书
感谢信
2019/04/11 职场文书
八年级作文之感悟亲情
2019/11/20 职场文书
Python+Appium新手教程
2021/04/17 Python