我正在使用Django REST Framework编写API,并且想知道在使用基于类的视图时是否可以为每个方法指定权限。
阅读文档,如果您正在编写基于函数的视图,那么仅使用@permission_classes
装饰器对要使用权限保护的视图的函数,我认为这样做非常容易。不过,我不明白的方式使用与CBVS时做同样的APIView
课,因为那时我指定用满级的权限permission_classes
属性,但将被再应用到所有类方法(get
,post
,put
…
)。
因此,是否可以用CBV编写API视图,并为视图类的每个方法指定不同的权限?
权限应用于整个View类,但是您可以在授权决策中考虑请求的各个方面(例如GET或POST之类的方法)。
参见内置IsAuthenticatedOrReadOnly
示例:
SAFE_METHODS = ['GET', 'HEAD', 'OPTIONS']
class IsAuthenticatedOrReadOnly(BasePermission):
"""
The request is authenticated as a user, or is a read-only request.
"""
def has_permission(self, request, view):
if (request.method in SAFE_METHODS or
request.user and
request.user.is_authenticated()):
return True
return False
当我要求一个图像http://127.0.0.1:8000/api/images/1/或者传入参数进行裁剪http://127.0.0.1:8000/api/images/1/?height=320 我得到的答复是: 而在http://127.0.0.1:8000/api/images/ 答复是: 为什么缩略图不容易返回主机名,我如何将基本网址追加到响应中? 以下是我的看法。派克
本文向大家介绍android6.0权限动态申请框架permissiondispatcher的方法,包括了android6.0权限动态申请框架permissiondispatcher的方法的使用技巧和注意事项,需要的朋友参考一下 1,添加依赖 在project的build.gradle文件中添加 在module的build.gradle中添加 2,添加注解 注释说明 RuntimePermissio
我想我会在这里问这个问题,因为我不太确定我会错在哪里。我正在尝试使用Django Rest框架类通过AJAX执行POST请求。但是,每当事件触发时,我都会收到以下错误: 这是堆栈跟踪中显示的内容: 上下文 我试图做到这一点,当用户单击“添加到列表”按钮时,它会向用户定义的列表发送一个cafeName(以及最终的其他详细信息)。 我想知道是否有人可以看看我的代码,并给我一些指导,我哪里出了问题? 代
问题内容: 我正在使用ECMAScript6模块。通过以下选项从模块导出/导入多个方法的正确方法是什么? 单类静态方法: 多种导出方法: 1)导出:一类只是静态方法的感觉有点像“代码气味”,但是类似地,单独导出所有内容确实有点冗长。仅仅是开发人员的偏爱还是这里有性能影响? 2)导入:’* as’语法是我的首选方法,因为它允许您使用点表示法(同时引用模块和方法)来辅助代码的可读性。但是,当我可能只使
我正在使用ECMAScript 6模块。从下面的选项中从模块导出/导入多个方法的正确方法是什么? 单一类别的静态方法: 多个导出方法: 1) 导出:一个仅仅是静态方法的类感觉有点像“代码味道”,但类似地,单独导出所有内容确实感觉有点冗长。这仅仅是开发人员的偏好,还是存在性能影响? 2) 导入:“*as”语法是我首选的方法,因为它允许您使用点表示法(同时引用模块和方法)帮助代码可读性。当我可能只使用
本文向大家介绍ThinkPHP框架表单验证操作方法,包括了ThinkPHP框架表单验证操作方法的使用技巧和注意事项,需要的朋友参考一下 自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证。分为静态验证和动态验证。 一、静态验证 (1)在Home/Controller/路径下新建Index控制器。IndexController Inde