在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实现端口转发器的方法
Mar 13 Python
Python判断文件和文件夹是否存在的方法
May 21 Python
用Python实现斐波那契(Fibonacci)函数
Mar 25 Python
python抽取指定url页面的title方法
May 11 Python
python逆序打印各位数字的方法
Jun 25 Python
Tensorflow 实现修改张量特定元素的值方法
Jul 30 Python
Python将一个Excel拆分为多个Excel
Nov 07 Python
python中pip的使用和修改下载源的方法
Jul 08 Python
python实现的读取网页并分词功能示例
Oct 29 Python
python文件操作的简单方法总结
Nov 07 Python
django 中使用DateTime常用的时间查询方式
Dec 03 Python
Python编写可视化界面的全过程(Python+PyCharm+PyQt)
May 17 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
xajax写的留言本
2006/11/25 PHP
并发下常见的加锁及锁的PHP具体实现代码
2010/10/12 PHP
初步介绍PHP扩展开发经验分享
2012/09/06 PHP
php中通过curl检测页面是否被百度收录
2013/09/27 PHP
Yii2下点击验证码的切换实例代码
2017/03/14 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
PHP 实现手机端APP支付宝支付功能
2018/06/07 PHP
Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法
2019/09/30 PHP
javascript知识点收藏
2007/02/22 Javascript
EasySlider 基于jQuery功能强大简单易用的滑动门插件
2010/06/11 Javascript
chrome下img加载对height()的影响示例探讨
2014/05/26 Javascript
jQuery中 attr() 方法使用小结
2015/05/03 Javascript
理解 JavaScript Scoping &amp; Hoisting(二)
2015/11/18 Javascript
jQuery基本选择器(实例及表单域value的获取方法)
2016/05/20 Javascript
jQuery bt气泡实现悬停显示及移开隐藏功能的方法
2016/07/12 Javascript
js 数字、字符串、布尔值的转换方法(必看)
2017/04/07 Javascript
Node 自动化部署的方法
2017/10/17 Javascript
VUE element-ui 写个复用Table组件的示例代码
2017/11/18 Javascript
vue2.0 兄弟组件(平级)通讯的实现代码
2018/01/15 Javascript
jQuery实现文字超过1行、2行或规定的行数时自动加省略号的方法
2018/03/28 jQuery
NodeJs crypto加密制作token的实现代码
2019/11/15 NodeJs
jQuery 选择方法及$(this)用法实例分析
2020/05/19 jQuery
Vue Element校验validate的实例
2020/09/21 Javascript
Python基础中所出现的异常报错总结
2016/11/19 Python
postman和python mock测试过程图解
2020/02/22 Python
Python类及获取对象属性方法解析
2020/06/15 Python
CSS3实现粒子旋转伸缩加载动画
2016/04/22 HTML / CSS
REISS英国官网:伦敦High Street最受欢迎品牌
2016/12/21 全球购物
美国知名眼镜网站:Target Optical
2020/04/04 全球购物
怎么处理XML的中文问题
2015/03/26 面试题
毕业生自我鉴定实例
2014/01/21 职场文书
高一物理教学反思
2014/01/24 职场文书
公司委托书范本5篇
2014/09/20 职场文书
2015年“我们的节日·重阳节”活动总结
2015/07/29 职场文书
行为习惯主题班会
2015/08/14 职场文书
简单聊聊Vue中的计算属性和属性侦听
2021/10/05 Vue.js