如何为基于函数的视图编写自定义权限?我使用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
3条答案
按热度按时间vyswwuz21#
这似乎是一个已知的问题,当使用基于函数的视图时,
has_object_permission
不受支持,据报告为here。如果要调用
has_permission
,应该能够使用permission_classes
装饰器来实现,如documentationjq6vz3qz2#
我同意@Forge的回答,但是如果你仍然想完成这些事情,你可以遵循这个-
btqmn9zl3#
你必须在def function_name()之前加上这些词:
小心方括号内