首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

未调用DRF自定义check_permission

是指在使用Django REST Framework(DRF)开发API时,没有调用自定义的check_permission函数。

在DRF中,权限控制是通过自定义权限类来实现的。可以通过继承DRF提供的BasePermission类,并重写其has_permission方法来实现自定义权限逻辑。在has_permission方法中,可以根据业务需求进行权限判断,并返回True或False。

在使用自定义权限类时,需要在视图类中调用check_permission函数来进行权限验证。check_permission函数会根据自定义权限类的逻辑判断用户是否具有访问API的权限。如果没有调用check_permission函数,那么自定义权限类的逻辑将不会生效,即所有用户都可以访问该API。

以下是一个示例代码:

代码语言:txt
复制
from rest_framework.permissions import BasePermission

class CustomPermission(BasePermission):
    def has_permission(self, request, view):
        # 自定义权限逻辑判断
        return True  # 或者根据业务需求返回True或False

class MyView(APIView):
    permission_classes = [CustomPermission]

    def get(self, request):
        self.check_permission(request)  # 调用check_permission函数进行权限验证
        # 其他处理逻辑

在上述示例中,CustomPermission是自定义的权限类,has_permission方法中可以根据具体需求进行权限判断。MyView是一个继承自APIView的视图类,通过设置permission_classes属性为[CustomPermission],将CustomPermission应用到该视图类中。在get方法中,调用self.check_permission(request)来进行权限验证。

需要注意的是,check_permission函数是DRF内部提供的方法,用于调用自定义权限类的has_permission方法进行权限验证。在使用自定义权限类时,一定要记得调用check_permission函数,否则自定义权限逻辑将不会生效。

关于DRF的权限控制和自定义权限类的更多信息,可以参考腾讯云的DRF文档:DRF权限控制

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

drf框架中jwt认证,以及自定义jwt认证

0909自我总结 drf框架中jwt 一.模块的安装 官方:http://getblimp.github.io/django-rest-framework-jwt/ 他是个第三方的开源项目 安装:pip...1)自定义认证类,继承BaseAuthentication(或其子类),重写authenticate 2)authenticate中完成 拿到认证标识 auth 反解析出用户 user 前两步操作失败...', ], 我们做局部设置就在我们自定义的类中添加 authentication_classes = [我们自定义认证函数的对象] 五.自定义权限相关 也是改源码 """ 系统: 1)AllowAny:...', ], 我们做局部设置就在我们自定义的类中添加 permission_classes = [我们自定义认证函数的对象] 六.自定义访问次数设置 """ 系统: 1)AnonRateThrottle:...throttle_classes = [AnonRateThrottle, UserRateThrottle] 自定义:基于auth的Group与Permission表 1)自定义频率类

2.7K10
  • 一场HttpClient调用关闭流引发的问题

    public void testDoGet(){ LOGGER.info("\ntestDoGet:"+Thread.currentThread()); //业务代码:里面调用了 String...json = HttpUtil.doGet(url);来调用第三方接口 HttpUtil.doGet("www.baidu.com") } //这里没有用异步执行,单线程执行 @...-"); // rejection-policy:当pool已经达到max size的时候,如何处理新任务 // CALLER_RUNS:不在新线程中执行任务,而是有调用者所在的线程来执行...HttpClient内部三个超时时间的区别 然后myAsync 这个线程池的线程也是有限的, Schedule每秒都在执行,很快线程不够用了,然后就阻塞了testDoGet这个定时任务了; 为了确认是 流关闭的问题...;如果执行程序已关闭,则会丢弃该任务 就是说线程池的队列也满了,就会触发丢弃策略,CallerRunsPolicy 是用调用线程池的那个线程来执行; ThreadPoolExecutor里面4种拒绝策略

    3.5K30

    让你的Django应用变DRY的几个最佳实践

    PermissionDenied() def get_user(self, user_id): # 若通过浏览器访问则需要定义次方法,获取已登录的用户对象 # 若只有RESTful调用则跳过...二、自定义响应体 很多时候(如前端框架、开发SDK)对响应体的格式是有要求的,我看到大多数的实现只是用一个格式化的类去填充响应信息,但这种方法有两个缺点: 每次需要人为构造响应 无法适用于DRF的ModelViewSet...要达成这种效果,大致有两种途径: 写自定义中间件,修改响应格式 写自定义renderer 这里第一种途径有几处劣势: 在中间件处理时rest_framework.response.Response已完成渲染...,修改内部数据不起作用 若重新构造一个rest_framework.response.Response则会报渲染错误,而渲染过程比较复杂 若选择用django.http.response.JSONResponse...重新构造响应则放弃了DRF的自动渲染特性 我对这些缺陷不能忍,于是想到了第二种途径,也就是自定义renderer,它有以下好处: 即可全局生效(DEFAULT_RENDERER_CLASSES),又可针对单个

    1.7K50

    Jmeter 调用自定义jar包

    jmete有调用jar包的功能, 可以利用这个功能实现对jar包的嵌入调用....自定义jar包 用Eclipse或者IntelliJ IDEA, 看个人喜好, IntelliJ IDEA 貌似更胜一筹,写一个非常简的java. public class Test{ public...Jmeter中调用自定义jar或者第三方工具类 一般有两种方法 第一种 直接将包放置jmeter的扩展包目录中: %jmeter_home%/lib/ext 第二种 (推荐使用) ?...beanshell sampler下编写java代码, 实现对jar包调用 import 自定义jar包的test类里仅有的方法stringFormat, return返回结果....调用自定义jar包的功能, 是jmeter为我们打开了一扇更为广阔的大门, 设想一下, 项目中很多复杂的业务场景是否可以通过java实现封装, jmeter只负责调用jar包, 让jmeter做更专注的事情呢

    2.4K10

    django rest_framework 分页

    简介 本文主要介绍在drf框架中如何对查询的数据进行分页,在drf框架中有提供该基础功能的使用案例和文档,详情参考drf-pagination-官网文档 (opens new window) 内置分页方式...drf框架中默认提供几种分页方式,并封装成了模块提供给开发者调用,主要是以下几种: PageNumberPagination,主要是提供page​和page_size​进行分页。...自定义分页 框架本身提供了分类的模块,但在实际工作中并不适用,所以我们可以通过继承的方式对内置的分页模块中的部分属性进行覆盖,以符合自身业务。...page_size = 100 page_size_query_param = 'page_size' max_page_size = 1000 参数: page_size:请求接口指明时...首先不进行全局模式,在需要分页的View中添加pagination_class​并设置对应的分页模式类,这里使用的是自定义的分页类,该配置只会在本View中生效。

    61710

    如何让 Python 写的 API 接口同时支持 Session 和 Token 认证?

    在如今多端横行的互联网,单纯的传统 Web 应用开发已经越来越式微,更多的应用采用了前后端分离的 Web 开发模式,后端只是单纯地提供 API 给前端各个终端(Web、APP、小程序等)调用。...DRF 框架本身就提供了支持。 DRF 支持的认证模式 REST framework 提供了许多开箱即用的身份认证方案,还允许自定义认证方案。...在 DRF 中使用认证 在 DRF 框架中,可以通过 2 种方式配置认证方式。...AuthenticationFailed(_('无效的token')) else: raise AuthenticationFailed(_('请求的URL中必须携带token参数')) 如果我们在登录或不带...如果浏览器登录状态下访问接口,会直接响应 403 Forbidden: ? 如果我们在浏览器登录状态下访问接口,会响应成功: ? 如果我们在接口中携带 Token 参数,也会响应成功: ?

    2.6K20
    领券