django rest framework模拟required_permissions

时间:2013-09-27 15:02:00

标签: django django-rest-framework

通常当我在我的django视图上定义权限时,我会使用类似这样的东西

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

但是,在休息框架时,如何在执行操作之前告诉API方法检查comment.add_thread权限?

1 个答案:

答案 0 :(得分:1)

这完全取决于您如何创建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,如下所示:

http://django-rest-framework.org/api-guide/permissions.html#djangomodelpermissions