关于权限

来源:6-9 扩展django的用户模型

Kepler_

2020-11-14 20:25:26

http://img.mukewang.com/climg/5fafcc00093fffd806830335.jpg


老师,您好:

1、这里的has_perm("foo.add_bar"),这里面的foo.add_bar是什么意思?老师说是权限的名称,那具体是什么?不明白


2、后面的permission_required('polls.can_vote')又是什么意思?具体是什么?老师能不能通过具体的小案例讲解一下上面第一个的疑惑和第二个的疑惑的问题呢?谢谢

写回答

2回答

时间,

2020-11-16

同学,你好,

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', '管理用户权限'),
        )



0
hepler_
h 懂了,谢谢老师
h020-11-16
共1条回复

时间,

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中的参数写法是一样的


0
hepler_
h 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 这一段不是很明白,感觉听得稀里糊涂的,什么什么<app label> 的值为 authenication,这个authenication哪里来的,<permission codename> 的值为 can_manage_users,这个can_manage_users是固定写法?这个—>"所以参数 perm 的值就应该为 authentication.can_manage_users"又是什么意思?
h020-11-15
共1条回复

0 学习 · 3562 问题

查看课程

相似问题

回答 1

关于jQuery

回答 1

回答 1

关于dict()

回答 1