在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装饰器使用方法实例
Nov 21 Python
Python中的深拷贝和浅拷贝详解
Jun 03 Python
Python2.7基于淘宝接口获取IP地址所在地理位置的方法【测试可用】
Jun 07 Python
python3.4下django集成使用xadmin后台的方法
Aug 15 Python
Python+Selenium+PIL+Tesseract自动识别验证码进行一键登录
Sep 20 Python
Python使用functools实现注解同步方法
Feb 06 Python
Python+OpenCV实现图像融合的原理及代码
Dec 03 Python
Python3实现统计单词表中每个字母出现频率的方法示例
Jan 28 Python
使用python PIL库实现简单验证码的去噪方法步骤
May 10 Python
python pycharm最新版本激活码(永久有效)附python安装教程
Sep 18 Python
Keras Convolution1D与Convolution2D区别说明
May 22 Python
Python项目跨域问题解决方案
Jun 22 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 socket(fsockopen)的应用实例分析
2013/06/02 PHP
javascript中的array数组使用技巧
2010/01/31 Javascript
this和执行上下文实现代码
2010/07/01 Javascript
ASP.NET jQuery 实例18 通过使用jQuery validation插件校验DropDownList
2012/02/03 Javascript
Array 重排序方法和操作方法的简单实例
2014/01/24 Javascript
Google官方支持的NodeJS访问API,提供后台登录授权
2014/07/29 NodeJs
javascript实现Table间隔色以及选择高亮(和动态切换数据)的方法
2015/05/14 Javascript
13个PHP函数超实用
2015/10/21 Javascript
阻止表单提交按钮多次提交的完美解决方法
2016/05/16 Javascript
jquery遍历table的tr获取td的值实现方法
2016/05/19 Javascript
nodejs的压缩文件模块archiver用法示例
2017/01/18 NodeJs
Javascript中的 “&amp;” 和 “|” 详解
2017/02/02 Javascript
在vue中添加Echarts图表的基本使用教程
2017/11/22 Javascript
微信小程序HTTP请求从0到1封装
2019/09/09 Javascript
JS实现商品橱窗特效
2020/01/09 Javascript
[07:55]2014DOTA2 TI正赛第三日 VG上演推进荣耀DKEG告别
2014/07/21 DOTA
Tensorflow分类器项目自定义数据读入的实现
2019/02/05 Python
python下载微信公众号相关文章
2019/02/26 Python
Python opencv实现人眼/人脸识别以及实时打码处理
2019/04/29 Python
python3 property装饰器实现原理与用法示例
2019/05/15 Python
Python调用百度根据经纬度查询地址的示例代码
2019/07/07 Python
Python实现基于SVM的分类器的方法
2019/07/19 Python
pytorch之ImageFolder使用详解
2020/01/06 Python
python3.7通过thrift操作hbase的示例代码
2020/01/14 Python
15行Python代码实现免费发送手机短信推送消息功能
2020/02/27 Python
html5.2 dialog简介详解
2018/02/27 HTML / CSS
英国户外装备和冒险服装零售商:alloutdoor
2018/01/30 全球购物
英国屋顶用品和材料超市:Roofing Supplies UK
2019/08/24 全球购物
党员学习正风肃纪思想汇报
2014/09/12 职场文书
公司合作协议范文
2014/10/01 职场文书
党员民主评议个人总结
2014/10/20 职场文书
雷锋的观后感
2015/06/10 职场文书
观看安全警示教育片心得体会
2016/01/15 职场文书
Python的flask接收前台的ajax的post数据和get数据的方法
2021/04/12 Python
mysql insert 存在即不插入语法说明
2022/03/25 MySQL
使用CSS定位HTML元素的实现方法
2022/07/07 HTML / CSS