Python 用户可以更新或删除由他人创建的数据

Python 用户可以更新或删除由他人创建的数据,python,django,django-rest-framework,Python,Django,Django Rest Framework,我有带所有CRUD函数的viewset。问题是用户可以编辑或删除另一个用户的故事,我在权限中找到了djangomodelpermissionsoranonredowly,但我甚至无法创建。我在故事模型中使用作者作为外键。我还使用了rest\u framework.authtoken。所以,我认为有两种选择,创建自己的权限或重写一些权限。哪个更好?写入客户对象级权限。以下是一个例子: class StoryViewSet(viewsets.ModelViewSet): serializer

我有带所有CRUD函数的viewset。问题是用户可以编辑或删除另一个用户的故事,我在
权限
中找到了
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