在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绘图方法实例入门
May 19 Python
Python调用微信公众平台接口操作示例
Jul 08 Python
Python探索之URL Dispatcher实例详解
Oct 28 Python
python编程线性回归代码示例
Dec 07 Python
python中字符串的操作方法大全
Jun 03 Python
Python实现密码薄文件读写操作
Dec 16 Python
Python实现鼠标自动在屏幕上随机移动功能
Mar 14 Python
python实现ftp文件传输系统(案例分析)
Mar 20 Python
python爬虫学习笔记之Beautifulsoup模块用法详解
Apr 09 Python
Python的3种运行方式:命令行窗口、Python解释器、IDLE的实现
Oct 10 Python
python中字符串的编码与解码详析
Dec 03 Python
Python连续赋值需要注意的一些问题
Jun 03 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
php5编程中的异常处理详细方法介绍
2008/07/29 PHP
php递归函数中使用return的注意事项
2014/01/17 PHP
ThinkPHP实现事务回滚示例代码
2014/06/23 PHP
PHP正则表达式替换站点关键字链接后空白的解决方法
2014/09/16 PHP
PHP采用curl模仿用户登陆新浪微博发微博的方法
2014/11/07 PHP
PHP递归复制、移动目录的自定义函数分享
2014/11/18 PHP
php使用PDO操作MySQL数据库实例
2014/12/30 PHP
如何写php守护进程(Daemon)
2015/12/30 PHP
实例:尽可能写友好的Javascript代码
2006/10/09 Javascript
IE6下focus与blur错乱的解决方案
2011/07/31 Javascript
jquery中animate动画积累的解决方法
2013/10/05 Javascript
jquery 中ajax执行的优先级
2015/06/22 Javascript
JavaScript箭头(arrow)函数详解
2017/06/04 Javascript
利用jQuery异步上传文件的插件用法详解
2017/07/19 jQuery
详解微信小程序获取当前时间及日期的方法
2019/04/28 Javascript
JS co 函数库的含义和用法实例总结
2020/04/08 Javascript
JS数组Reduce方法功能与用法实例详解
2020/04/29 Javascript
python使用xlrd模块读写Excel文件的方法
2015/05/06 Python
Python 操作MySQL详解及实例
2017/04/30 Python
浅谈python3中input输入的使用
2019/08/02 Python
python 3.6.7实现端口扫描器
2019/09/04 Python
numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)
2020/04/28 Python
24岁生日感言
2014/01/13 职场文书
优秀教师主要事迹
2014/02/01 职场文书
舞蹈专业求职信
2014/06/13 职场文书
爬山的活动方案
2014/08/16 职场文书
妈妈别哭观后感
2015/06/08 职场文书
怎样写观后感
2015/06/19 职场文书
入党函调证明材料
2015/06/19 职场文书
追讨欠款律师函
2015/06/24 职场文书
烈士陵园扫墓感想
2015/08/07 职场文书
解决mysql问题:由于找不到MSVCR120.dll,无法继续执行代码
2021/06/26 MySQL
Python实现老照片修复之上色小技巧
2021/10/16 Python
python在package下继续嵌套一个package
2022/04/14 Python
详解Mysql事务并发(脏读、不可重复读、幻读)
2022/04/29 MySQL
python解析照片拍摄时间进行图片整理
2022/07/23 Python