在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实现堆栈与队列的方法
Jan 15 Python
Python实现计算最小编辑距离
Mar 17 Python
Python数据类型中的“冒号“[::]——分片与步长操作示例
Jan 24 Python
Python中的单继承与多继承实例分析
May 10 Python
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
Jul 27 Python
python http基本验证方法
Dec 26 Python
pycharm新建一个python工程步骤
Jul 16 Python
python修改linux中文件(文件夹)的权限属性操作
Mar 05 Python
深入理解Python 多线程
Jun 16 Python
python实现人工蜂群算法
Sep 18 Python
拒绝盗图!教你怎么用python给图片加水印
Jun 04 Python
python基础入门之字典和集合
Jun 13 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
杏林同学录(九)
2006/10/09 PHP
模板引擎正则表达式调试小技巧
2011/07/20 PHP
如何判断php数组的维度
2013/06/10 PHP
jquery 仿QQ校友的DIV模拟窗口效果源码
2010/03/24 Javascript
JavaScript高级程序设计 阅读笔记(十七) js事件
2012/08/14 Javascript
Raphael带文本标签可拖动的图形实现代码
2013/02/20 Javascript
ie浏览器使用js导出网页到excel并打印
2014/03/11 Javascript
document.compatMode的CSS1compat使用介绍
2014/04/03 Javascript
jQuery插件bxSlider实现响应式焦点图
2015/04/12 Javascript
JavaScript实现九九乘法表的简单实例
2016/06/07 Javascript
js中获取jsp表单中radio类型的值简单实例
2016/08/15 Javascript
Javascript动画效果(1)
2016/10/11 Javascript
详解自动生成博客目录案例
2016/12/09 Javascript
使用BootStrap实现表格隔行变色及hover变色并在需要时出现滚动条
2017/01/04 Javascript
详解JavaScript中的六种错误类型
2017/09/21 Javascript
浅谈webpack打包之后的文件过大的解决方法
2018/03/07 Javascript
浅谈Vue项目骨架屏注入实践
2019/08/05 Javascript
Vue数据双向绑定底层实现原理
2019/11/22 Javascript
JS实现单张或多张图片持续无缝滚动的示例代码
2020/05/10 Javascript
jQuery实现简单轮播图效果
2020/12/27 jQuery
python的re模块应用实例
2014/09/26 Python
Python base64编码解码实例
2015/06/21 Python
Python的pycurl包用法简介
2015/11/13 Python
Python下的Softmax回归函数的实现方法(推荐)
2017/01/26 Python
python 发送和接收ActiveMQ消息的实例
2019/01/30 Python
大学生最新职业生涯规划书范文
2014/01/12 职场文书
房产委托公证书
2014/04/08 职场文书
公证书样本
2014/04/10 职场文书
应届本科毕业生求职信
2014/07/23 职场文书
幼儿园五一劳动节活动总结
2015/02/09 职场文书
中国世界遗产导游词
2015/02/13 职场文书
民间借贷借条范本
2015/05/25 职场文书
呐喊读书笔记
2015/06/30 职场文书
使用Python脚本对GiteePages进行一键部署的使用说明
2021/05/27 Python
Python Numpy库的超详细教程
2022/04/06 Python
python数字图像处理之图像自动阈值分割示例
2022/06/28 Python