关于权限
来源:6-9 扩展django的用户模型
Kepler_
2020-11-14 20:25:26
老师,您好:
1、这里的has_perm("foo.add_bar"),这里面的foo.add_bar是什么意思?老师说是权限的名称,那具体是什么?不明白
2、后面的permission_required('polls.can_vote')又是什么意思?具体是什么?老师能不能通过具体的小案例讲解一下上面第一个的疑惑和第二个的疑惑的问题呢?谢谢
2回答
同学,你好,
1、has_perm中参数perm的格式为<app label>.<permission codename>即app名称.权限名称
2、以下代码是举的例子:authenication是app的名称,代码是该app的models中的代码;can_manage_users是权限名称,因此在判断权限时应为has_perm(authentication.can_manage_users)
from django.db import models
class Auth_control(models.Model):
'''用于权限控制 '''
class Meta:
permissions = (
('can_manage_users', '管理用户权限'),
)
时间,
2020-11-15
同学,你好,
1、foo为app名称,add_bar为权限名称,has_perm中的参数格式为<app label>.<permission codename>
以 app(authenication)中 models.py 的定义为例:
from django.db import models
class Auth_control(models.Model):
'''用于权限控制 '''
class Meta:
permissions = (
('can_manage_users', '管理用户权限'),
)
<app label> 的值为 authenication,
<permission codename> 的值为 can_manage_users,
所以参数 perm 的值就应该为 authentication.can_manage_users
2、permission_required()是权限验证的另一种方式,是django自带的,直接在views函数前@permission_required(perms)即可,perms为app名.权限,和1中的参数写法是一样的
相似问题