DRF在视图上具有permission_classes属性。方法check_permissions实例化permission_classes列表中的每个类,并调用has_permission(self,request,view)方法来检查用户是否有权访问此视图。
所有这些方法都不是静态方法。他们需要实例化视图来检查权限。
有没有办法静态检查权限,而无需实例化视图?另外,我不想复制和粘贴DRF代码来做同样的事情。
这样的事情:
def check_permissions(view_class, request):
答案 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)
如果不实例化视图,则无法检查查看权限。 要省略在每个请求上实例化数百个视图,我只执行一次并将结果保存到用户会话。