在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使用cookie库操保存cookie详解
Mar 03 Python
Python中有趣在__call__函数
Jun 21 Python
Python实现将Excel转换为json的方法示例
Aug 05 Python
python保存网页图片到本地的方法
Jul 24 Python
python简易实现任意位数的水仙花实例
Nov 13 Python
Pyqt清空某一个QTreeewidgetItem下的所有分支方法
Jun 17 Python
python使用 __init__初始化操作简单示例
Sep 26 Python
Pandas-Cookbook 时间戳处理方式
Dec 07 Python
Python中使用filter过滤列表的一个小技巧分享
May 02 Python
Python中zipfile压缩文件模块的基本使用教程
Jun 14 Python
解决Python 写文件报错TypeError的问题
Oct 23 Python
selenium.webdriver中add_argument方法常用参数表
Apr 08 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使用sql数据库 获取字段问题介绍
2013/08/12 PHP
php实现遍历多维数组的方法
2015/11/25 PHP
浅谈PHP拦截器之__set()与__get()的理解与使用方法
2016/10/18 PHP
php实现微信模拟登陆、获取用户列表及群发消息功能示例
2017/06/28 PHP
Laravel实现短信注册的示例代码
2018/05/29 PHP
php支付宝APP支付功能
2020/07/29 PHP
JQuery中getJSON的使用方法
2010/12/13 Javascript
js对象数组按属性快速排序
2011/01/31 Javascript
从jquery的过滤器.filter()方法想到的
2013/09/29 Javascript
angularJS 中input示例分享
2015/02/09 Javascript
JS定义网页表单提交(submit)的方法
2015/03/20 Javascript
javascript中Function类型详解
2015/04/28 Javascript
JS获取CSS样式(style/getComputedStyle/currentStyle)
2016/01/19 Javascript
jquery插件bootstrapValidator数据验证详解
2016/11/09 Javascript
jQuery使用EasyUi实现三级联动下拉框效果
2017/03/08 Javascript
基于jquery实现多选下拉列表
2017/08/02 jQuery
仿vue-cli搭建属于自己的脚手架的方法步骤
2019/04/17 Javascript
js实现文字头像的生成代码
2020/03/07 Javascript
超详细小程序定位地图模块全系列开发教学
2020/11/24 Javascript
python 把数据 json格式输出的实例代码
2016/10/31 Python
python笔记:mysql、redis操作方法
2017/06/28 Python
Python编程实现线性回归和批量梯度下降法代码实例
2018/01/04 Python
快速解决pandas.read_csv()乱码的问题
2018/06/15 Python
python 字典的打印实现
2019/09/26 Python
LN-CC中国:高端男装和女装的奢侈时尚目的地
2019/09/14 全球购物
Myprotein亚太地区:欧洲第一在线运动营养品牌
2020/12/20 全球购物
实习自我鉴定模板
2013/09/28 职场文书
临床医学系毕业生推荐信
2013/11/09 职场文书
职业技术学校毕业生推荐信
2013/12/03 职场文书
网络编辑职责
2014/03/01 职场文书
数控专业自荐书范文
2014/03/16 职场文书
经理聘任证明
2015/03/02 职场文书
2016年会开场白台词
2015/06/01 职场文书
小学数学新课改心得体会
2016/01/22 职场文书
JDBC连接的六步实例代码(与mysql连接)
2021/05/12 MySQL
MySQL中InnoDB存储引擎的锁的基本使用教程
2021/05/26 MySQL