Python 用户可以更新或删除由他人创建的数据
我有带所有CRUD函数的viewset。问题是用户可以编辑或删除另一个用户的故事,我在Python 用户可以更新或删除由他人创建的数据,python,django,django-rest-framework,Python,Django,Django Rest Framework,我有带所有CRUD函数的viewset。问题是用户可以编辑或删除另一个用户的故事,我在权限中找到了djangomodelpermissionsoranonredowly,但我甚至无法创建。我在故事模型中使用作者作为外键。我还使用了rest\u framework.authtoken。所以,我认为有两种选择,创建自己的权限或重写一些权限。哪个更好?写入客户对象级权限。以下是一个例子: class StoryViewSet(viewsets.ModelViewSet): serializer
权限
中找到了djangomodelpermissionsoranonredowly
,但我甚至无法创建。我在故事
模型中使用作者
作为外键
。我还使用了rest\u framework.authtoken
。所以,我认为有两种选择,创建自己的权限或重写一些权限。哪个更好?写入客户对象级权限。以下是一个例子:
class StoryViewSet(viewsets.ModelViewSet):
serializer_class = StorySerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
并将其包含到权限\u类
列表中
class IsOwnerOrReadOnly(permissions.BasePermission):
"""
Object-level permission to only allow owners of an object to edit it.
"""
def has_object_permission(self, request, view, obj):
# Read permissions are allowed to any request,
# so we'll always allow GET, HEAD or OPTIONS requests.
if request.method in permissions.SAFE_METHODS:
return True
return obj.author == request.user