<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>auth用户认证</title> </head> <body> {% if user.is_authenticated %} <h1> Hello {{user.username}} Login </h1> {% else %} <h1>Visitor Login</h1> {% endif %} </body> </html>此时有个地方需要大家注意一下,此时 user 变量实例对象需要上下文进行传递,也可以用 locals() 方法或者 RequestContext 参数进行传递。
from django.contrib.auth.context_processors import PermWrapper
perms 只可以完成两类权限的校验:是否有某个应用的权限,只要当前用户拥有某个应用中的任何一个权限,即为 True。使用方法见下:{{ perms.user }}
它的返回值是当前用户被授予的 user 应用的权限,如返回值是None 则表示当前用户没有 index 应用的权限;是否有某一项权限,这里指的是当前用户是否拥有一个确定的权限,如下所示:{{perms.user.add_book }}
它的返回值若为 True 则代表当前用户拥有 user 应用中的 add_book 权限。在 Django 模板语言中我们可以使用下列方式来判断用户是否有某项权限:{% if "user" in perms %}
校验当前用户是否有 user 应用的权限,假如返回了 True,则代表至少有一个 post 应用的权限。{% if "user.add_book" in perms %}
判断当前用户是否有 user 应用的 add_book 权限。下面我们实现一个简单的模板,可以根据登录用户拥有的权限渲染不同的内容。定义 authmodel.html 文件,编写如下代码:{% if perms.index %} <p> {{ user.username }}拥有 user应用的权限</p>> {% if perms.index.add_book %} <p>你拥有书籍添加的功能</p> {% endif %} {% if perms.index.change_book %} <p>你有用书籍删除的功能</p> {% endif %} {% else %} <p>关于index应用的权限你一个也没有拥有</p> {% endif %}从模板中我们可以看出,它首先判断当前用户是否拥有 index 应用的权限,然后再去判断是否有 add_book 和 change_book 的权限。可以将这个模板应用到视图函数中,以此来查看不同登录用户,得到的不同返回结果,注意在这个过程中,要设置不同用户的不同权限配置。
本文链接:http://task.lmcjl.com/news/17474.html