关于权限

关于权限

http://img1.sycdn.imooc.com//climg/5fafcc00093fffd806830335.jpg


老师,您好:

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 09:58:36

同学,你好,

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


  • 提问者 为学习而奋斗 #1
    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"又是什么意思?
    2020-11-15 19:12:47
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
3.从网页搭建入门Python Web
  • 参与学习           人
  • 提交作业       218    份
  • 解答问题       3562    个

本阶段带你用Python开发一个网站,学习主流框架Django+Flask是Python Web开发的第一步,在基础知识上实现积分商城的项目开发,体验真实的项目开发流程,提高解决编程问题和效率的能力。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师