静态检查rest_framework权限

时间:2016-11-04 09:38:44

标签: django permissions django-rest-framework

DRF在视图上具有permission_classes属性。方法check_permissions实例化permission_classes列表中的每个类,并调用has_permission(self,request,view)方法来检查用户是否有权访问此视图。

所有这些方法都不是静态方法。他们需要实例化视图来检查权限。

有没有办法静态检查权限,而无需实例化视图?另外,我不想复制和粘贴DRF代码来做同样的事情。

这样的事情:

def check_permissions(view_class, request):

2 个答案:

答案 0 :(得分:0)

您可以从设置文件中添加自定义权限(通常为settings.py)。

REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.IsAuthenticated',
        'permissions.custompermission.MyCustomPermissionClass',
    ),
    ......
}

如果您不知道如何创建权限类,请查看DRF教程。 http://www.django-rest-framework.org/api-guide/permissions/#custom-permissions

答案 1 :(得分:0)

如果不实例化视图,则无法检查查看权限。 要省略在每个请求上实例化数百个视图,我只执行一次并将结果保存到用户会话。