Django - DRF - BasePermission 权限组件

本文介绍了Django Rest Framework中BasePermission的使用,包括权限类的实现、视图函数的权限配置、序列化类ModelSerializer的应用以及在models中对choices的优化。详细探讨了权限认证的局部和全局配置,并进行了源码分析。
摘要由CSDN通过智能技术生成

目录

一、BasePermission - 用于拦截请求,在视图函数钱执行相应权限认证方法

1-1 drAuth.py - 权限类实现

1-2 视图函数 - 需要权限验证的类 - permission_classes

1-3 序列类 - 作为数据返回的序列化 - ModelSerializer

1-4 models内  choices优化

 二、权限认证配置 - permission_classes

2-1 局部配置

2-2 全局配置 及 局部禁用

三、源码分析


一、BasePermission - 用于拦截请求,在视图函数钱执行相应权限认证方法

总结:

  • 权限类
    • 权限类必须单独存放在py文件内,若和view同一文件,则执行全局配时会出错
    • 继承 BasePermission
      • from rest_framework.permissions import BasePermission
    • ​​​​​​​设置无选线返回信息 message = '您没有权限查看' - 变量名必须为message ​​​​​​​
    • 重写 has_permission 方法
    • 验证成功与否,返回True or False
  • 视图类
    • 配置 permission_classes = [drfAuth.UserPermission, ] 作为局部认证
  • ​​​​​​​choices优化
    • ​​​​​​​使用 get_字段名_display() -- 获取choices内对应字符串

1-1 drAuth.py - 权限类实现

from rest_framework.permissions import BasePermission


class UserPermission(BasePermission):
    # 无权限的显示信息
    message = '您没有权限查看'

    # 必须重写 has_permission
    def has_permission(self, request, view):
        user_type = request.user.user_type
        user_type_name = request.user.get_user_type_display()
        print(request.u
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值