在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中自定义函数的可变参数的使用及注意点
Jun 21 Python
Python将图片批量从png格式转换至WebP格式
Aug 22 Python
python 请求服务器的实现代码(http请求和https请求)
May 25 Python
python实现键盘控制鼠标移动
Nov 27 Python
python实现名片管理系统项目
Apr 26 Python
python3 map函数和filter函数详解
Aug 26 Python
Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)
Dec 04 Python
Python字节单位转换实例
Dec 05 Python
Pytorch 实现计算分类器准确率(总分类及子分类)
Jan 18 Python
Django media static外部访问Django中的图片设置教程
Apr 07 Python
python中关于数据类型的学习笔记
Jul 19 Python
Python图像处理之图像拼接
Apr 28 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来处理多个提交任务
2006/10/09 PHP
php数组(array)输出的三种形式详解
2013/06/05 PHP
PHP中子类重载父类的方法【parent::方法名】
2016/05/06 PHP
PHP判断数组是否为空的常用方法(五种方法)
2017/02/08 PHP
laravel框架的安装与路由实例分析
2019/10/11 PHP
解决laravel session失效的问题
2019/10/14 PHP
PHP设计模式之适配器模式(Adapter)原理与用法详解
2019/12/12 PHP
Javascript中的数学函数集合
2007/05/08 Javascript
javascript调试说明
2010/06/07 Javascript
JavaScript window.location对象
2014/11/14 Javascript
Jquery 分页插件之Jquery Pagination
2015/08/25 Javascript
js表单元素checked、radio被选中的几种方法(详解)
2016/08/22 Javascript
浅谈通过JS拦截 pushState和replaceState事件
2017/07/21 Javascript
JS模拟超市简易收银台小程序代码解析
2017/08/18 Javascript
代码详解Vuejs响应式原理
2017/12/20 Javascript
create-react-app修改为多页面支持的方法
2018/05/17 Javascript
JS实现根据详细地址获取经纬度功能示例
2019/04/16 Javascript
jQuery实现高级检索功能
2019/05/28 jQuery
[50:02]完美世界DOTA2联赛循环赛 Magma vs IO BO2第一场 11.01
2020/11/02 DOTA
python实现俄罗斯方块
2018/06/26 Python
python实现自动获取IP并发送到邮箱
2018/12/26 Python
pandas 对日期类型数据的处理方法详解
2019/08/08 Python
Flask框架学习笔记之消息提示与异常处理操作详解
2019/08/15 Python
基于Keras的格式化输出Loss实现方式
2020/06/17 Python
python 三种方法提取pdf中的图片
2021/02/07 Python
Web前端页面跳转并取到值
2017/04/24 HTML / CSS
卡塔尔航空官方网站:Qatar Airways
2017/02/08 全球购物
有趣的流行文化T恤、马克杯、手机壳和更多:Look Human
2019/01/07 全球购物
zooplus波兰:在线宠物店
2019/07/21 全球购物
学用政策心得体会
2014/09/10 职场文书
2014年质检员工作总结
2014/11/18 职场文书
2014年政府采购工作总结
2014/12/09 职场文书
2014年学校禁毒工作总结
2014/12/23 职场文书
小学运动会开幕词
2016/03/04 职场文书
使用Pytorch训练two-head网络的操作
2021/05/28 Python
使用canvas对video视频某一刻截图功能
2021/09/25 HTML / CSS