关于权限
老师,您好:
1、这里的has_perm("foo.add_bar"),这里面的foo.add_bar是什么意思?老师说是权限的名称,那具体是什么?不明白
2、后面的permission_required('polls.can_vote')又是什么意思?具体是什么?老师能不能通过具体的小案例讲解一下上面第一个的疑惑和第二个的疑惑的问题呢?谢谢
正在回答
同学,你好,
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', '管理用户权限'),
)
同学,你好,
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中的参数写法是一样的
- 参与学习 人
- 提交作业 218 份
- 解答问题 3562 个
本阶段带你用Python开发一个网站,学习主流框架Django+Flask是Python Web开发的第一步,在基础知识上实现积分商城的项目开发,体验真实的项目开发流程,提高解决编程问题和效率的能力。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星