在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 29 Python
详解python3实现的web端json通信协议
Dec 29 Python
Pyspider中给爬虫伪造随机请求头的实例
May 07 Python
Python使用pandas处理CSV文件的实例讲解
Jun 22 Python
python实现自动网页截图并裁剪图片
Jul 30 Python
解决python测试opencv时imread导致的错误问题
Jan 26 Python
PyQt5根据控件Id获取控件对象的方法
Jun 25 Python
Python爬虫实现的根据分类爬取豆瓣电影信息功能示例
Sep 15 Python
Python opencv相机标定实现原理及步骤详解
Apr 09 Python
python中如何打包用户自定义模块
Sep 23 Python
基于python+selenium自动健康打卡的实现代码
Jan 13 Python
python实现简易名片管理系统
Apr 11 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
MySQL数据源表结构图示
2008/06/05 PHP
一些使用频率比较高的php函数
2008/10/03 PHP
php 访问oracle 存储过程实例详解
2017/01/08 PHP
JavaScript 参考教程
2006/12/29 Javascript
jQuery与ExtJS之选择实例分析
2010/08/19 Javascript
jQuery学习笔记[1] jQuery中的DOM操作
2010/12/03 Javascript
Jquery提交表单 Form.js官方插件介绍
2012/03/01 Javascript
深入理解JavaScript系列(16) 闭包(Closures)
2012/04/12 Javascript
解析jQuery与其它js(Prototype)库兼容共存
2013/07/04 Javascript
jquery的ajax简单结构示例代码
2014/02/17 Javascript
JS函数this的用法实例分析
2015/02/05 Javascript
JQuery创建DOM节点的方法
2015/06/11 Javascript
javascript比较两个日期相差天数的方法
2015/07/24 Javascript
JS实现来回出现文字的状态栏特效代码
2015/10/31 Javascript
JavaScript html5 canvas绘制时钟效果
2016/03/01 Javascript
基于jquery实现最简单的选项卡切换效果
2016/05/08 Javascript
详解微信小程序——自定义圆形进度条
2016/12/29 Javascript
微信小程序 跳转传参数与传对象详解及实例代码
2017/03/14 Javascript
Vue组件tree实现树形菜单
2017/04/13 Javascript
js实现拖动缓动效果
2020/01/13 Javascript
JavaScript this指向相关原理及实例解析
2020/07/10 Javascript
手写Vue2.0 数据劫持的示例
2021/03/04 Vue.js
[01:28]一分钟告诉你DOTA2 TI9不朽宝藏Ⅱ中有什么!
2019/07/09 DOTA
Python2.x中文乱码问题解决方法
2015/06/02 Python
Python书单 不将就
2017/07/11 Python
Python基础学习之常见的内建函数整理
2017/09/06 Python
Python tornado队列示例-一个并发web爬虫代码分享
2018/01/09 Python
Python3+OpenCV2实现图像的几何变换(平移、镜像、缩放、旋转、仿射)
2019/05/13 Python
Python开发之身份证验证库id_validator验证身份证号合法性及根据身份证号返回住址年龄等信息
2020/03/20 Python
Python xmltodict模块安装及代码实例
2020/10/05 Python
python实现双人五子棋(终端版)
2020/12/30 Python
中餐厅主管的职责范文
2014/02/04 职场文书
光棍节联谊晚会活动策划书
2014/10/10 职场文书
python 利用 PIL 将数组值转成图片的实现
2021/04/12 Python
如何利用js在两个html窗口间通信
2021/04/27 Javascript
virtualenv隔离Python环境的问题解析
2022/06/21 Python