在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列表(list)、字典(dict)、字符串(string)基本操作小结
Nov 28 Python
分析Python编程时利用wxPython来支持多线程的方法
Apr 07 Python
Python Tkinter实现简易计算器功能
Jan 30 Python
用Python一键搭建Http服务器的方法
Jun 01 Python
Django添加feeds功能的示例
Aug 07 Python
Django-Model数据库操作(增删改查、连表结构)详解
Jul 17 Python
详解如何用TensorFlow训练和识别/分类自定义图片
Aug 05 Python
如何基于python对接钉钉并获取access_token
Apr 21 Python
python中rb含义理解
Jun 18 Python
浅谈Keras中shuffle和validation_split的顺序
Jun 19 Python
python将数据插入数据库的代码分享
Aug 16 Python
Python爬虫后获取重定向url的两种方法
Jan 19 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关于IE下的iframe跨域导致session丢失问题解决方法
2013/10/10 PHP
CodeIgniter多语言实现方法详解
2016/01/20 PHP
php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证
2016/05/04 PHP
SAE实时日志接口SDK用法示例
2016/10/09 PHP
PHP中Laravel 关联查询返回错误id的解决方法
2017/04/01 PHP
PHP 获取 ping 时间的实现方法
2017/09/29 PHP
javascript 强制刷新页面的实现代码
2009/12/13 Javascript
javascript 触发HTML元素绑定的函数
2010/09/11 Javascript
JavaScript italics方法入门实例(把字符串显示为斜体)
2014/10/17 Javascript
jQuery和AngularJS的区别浅析
2015/01/29 Javascript
javascript获得当前的信息的一些常用命令
2015/02/25 Javascript
javascript数组去重的方法汇总
2015/04/14 Javascript
jQuery选择器总结之常用元素查找方法
2016/08/04 Javascript
纯JavaScript手写图片轮播代码
2016/10/20 Javascript
jQuery自定义元素右键点击事件(实现案例)
2017/04/28 jQuery
使用typescript开发angular模块并发布npm包
2018/04/19 Javascript
JavaScript常用事件介绍
2019/01/21 Javascript
Javascript Web Worker使用过程解析
2020/03/16 Javascript
[15:28]DOTA2 HEROS教学视频教你分分钟做大人-剧毒术士
2014/06/13 DOTA
[01:05:29]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第二场 1月24日
2021/03/11 DOTA
Python中的CSV文件使用&quot;with&quot;语句的方式详解
2018/10/16 Python
情人节快乐! python绘制漂亮玫瑰
2020/08/18 Python
python matplotlib画图库学习绘制常用的图
2019/03/19 Python
python实现的Iou与Giou代码
2020/01/18 Python
使用Python实现牛顿法求极值
2020/02/10 Python
Python实现曲线拟合的最小二乘法
2021/02/19 Python
Spartoo英国:欧洲最大的网上鞋店
2016/09/13 全球购物
HEMA英国:荷兰原创设计
2018/08/28 全球购物
自我鉴定三原则
2014/01/13 职场文书
槐乡的孩子教学反思
2014/04/27 职场文书
领导干部作风建设工作总结
2014/10/23 职场文书
2015年幼儿园德育工作总结
2015/05/25 职场文书
幼儿园家长心得体会
2016/01/21 职场文书
小学思想品德教学反思
2016/02/24 职场文书
Python Pandas知识点之缺失值处理详解
2021/05/11 Python
SpringBoot集成Redis,并自定义对象序列化操作
2021/06/22 Java/Android