Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django rest框架模拟所需的\u权限_Django_Django Rest Framework - Fatal编程技术网

django rest框架模拟所需的\u权限

django rest框架模拟所需的\u权限,django,django-rest-framework,Django,Django Rest Framework,通常,当我在django视图上定义权限时,我会使用类似的方法 @permission_required('comment.add_thread', raise_exception=True) def save_comment(request, id=None): """ """ 但是,当使用rest框架时,如何告诉API方法在执行操作之前检查comment.add_线程权限 这完全取决于您如何创建api视图,如果您的视图不是泛型视图,那么您需要创建自己的权限,如下所示: from res

通常,当我在django视图上定义权限时,我会使用类似的方法

@permission_required('comment.add_thread',  raise_exception=True)
def save_comment(request, id=None):
  """ """

但是,当使用rest框架时,如何告诉API方法在执行操作之前检查comment.add_线程权限

这完全取决于您如何创建api视图,如果您的视图不是泛型视图,那么您需要创建自己的权限,如下所示:

from rest_framework import permissions

class AddCommentPermission(permissions.BasePermission):

    def has_permission(self, request, view):
        return request.user.has_perm('comment.add_thread')
但如果您的视图设置了模型属性,则只需使用
DjangoModelPermissions
,如下所述: