b_p*_*kes 6 python django django-rest-framework
如何为基于函数的视图编写自定义权限?我正在使用REST框架,并且已经编写了密文加密/解密API。对于每个键(key-detail),我都有一个基于功能的视图,我只想提供给该键的所有者。我知道使用基于类的视图时就足以定义了permission_classes,但是如何为基于函数的视图做到这一点呢?我尝试使用@permission_classes装饰器,但不适用于我的自定义权限,其编写方式如下:
class IsOwner(permissions.BasePermission):
"""
Custom permission to only allow owners of an object to access it.
"""
def has_object_permission(self, request, view, obj):
return obj.owner == request.user
Run Code Online (Sandbox Code Playgroud)
似乎这是一个已知问题,has_object_permission在使用基于函数的视图时不受支持,在此处报告。
如果您想致电has_permission,则应该可以使用permission_classes装饰器(如文档所示)进行呼叫
@api_view('GET')
@permission_classes((IsAuthenticated, ))
def example_view(request, format=None):
content = {
'status': 'request was permitted'
}
return Response(content)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1715 次 |
| 最近记录: |