在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 04 Python
Linux下Python获取IP地址的代码
Nov 30 Python
python中nan与inf转为特定数字方法示例
May 11 Python
让Python脚本暂停执行的几种方法(小结)
Jul 11 Python
python使用pip安装模块出现ReadTimeoutError: HTTPSConnectionPool的解决方法
Oct 04 Python
关于numpy中eye和identity的区别详解
Nov 29 Python
Python标准库itertools的使用方法
Jan 17 Python
python IDLE添加行号显示教程
Apr 25 Python
基于Python词云分析政府工作报告关键词
Jun 02 Python
Python代码注释规范代码实例解析
Aug 14 Python
Python中Selenium模块的使用详解
Oct 09 Python
Python爬虫之Selenium中frame/iframe表单嵌套页面
Dec 04 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中adodbzip类实例
2014/12/08 PHP
thinkPHP3.1验证码的简单实现方法
2016/04/22 PHP
PHP中的print_r 与 var_dump 输出数组
2016/06/13 PHP
详解PHP原生DOM对象操作XML的方法
2016/10/17 PHP
在JavaScript中实现命名空间
2006/11/23 Javascript
&amp;lt;script defer&amp;gt; defer 是什么意思
2009/05/10 Javascript
JS 的应用开发初探(mootools)
2009/12/19 Javascript
javascript中callee与caller的用法和应用场景
2010/12/08 Javascript
jquery 层次选择器siblings与nextAll的区别介绍
2013/08/02 Javascript
代码获取历史上的今天发生的事
2014/04/11 Javascript
jquery SweetAlert插件实现响应式提示框
2015/08/18 Javascript
很实用的js选项卡切换效果
2016/08/12 Javascript
Vue.js快速入门教程
2016/09/07 Javascript
bootstrapValidator.min.js表单验证插件
2017/02/09 Javascript
javascript编程实现栈的方法详解【经典数据结构】
2017/04/11 Javascript
mui开发中获取单选按钮、复选框的值(实例讲解)
2017/07/24 Javascript
微信小程序实现倒计时补零功能
2018/07/09 Javascript
详谈js的变量提升以及使用方法
2018/10/06 Javascript
基于jquery实现九宫格拼图小游戏
2018/11/30 jQuery
vue 使用鼠标滚动加载数据的例子
2019/10/31 Javascript
Python对小数进行除法运算的正确方法示例
2014/08/25 Python
Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
2017/08/21 Python
在Python中过滤Windows文件名中的非法字符方法
2019/06/10 Python
Python3的高阶函数map,reduce,filter的示例详解
2019/07/23 Python
使用Rasterio读取栅格数据的实例讲解
2019/11/26 Python
深入浅析pycharm中 Make available to all projects的含义
2020/09/15 Python
香港时装购物网站:ZALORA香港
2017/04/23 全球购物
四个太阳教学反思
2014/02/01 职场文书
开服装店计划书
2014/08/15 职场文书
长城导游词
2015/01/30 职场文书
2015年志愿者服务工作总结
2015/04/20 职场文书
七一慰问简报
2015/07/20 职场文书
python基础学习之递归函数知识总结
2021/05/26 Python
MySQL通过binlog恢复数据
2021/05/27 MySQL
Python采集爬取京东商品信息和评论并存入MySQL
2022/04/12 Python
PostgreSQL基于pgrouting的路径规划处理方法
2022/04/18 PostgreSQL