gpt4 book ai didi

python - Django Rest Framework ListCreateAPIView 不检查 has_object_permissions?

转载 作者:行者123 更新时间:2023-12-04 14:24:03 25 4
gpt4 key购买 nike

我已经尝试了将近一整天的时间来解决这个问题,但我似乎无法弄清楚为什么 has_object_permission method ListCreateAPIView 时不调用在 DRF 中被调用.我已经尝试了我能找到的所有解决方案,但根据文档 check_object_permissions已经在这个类中调用了。

我知道这一定是我想念的愚蠢的东西。代码片段如下,请帮忙!

View .py:

from accountability.models import AccountabilityItem
from accountability.serializers import AccountabilityItemSerializer
from rest_framework import generics
from .permissions import InGroup

class AccountabilityItemListCreate(generics.ListCreateAPIView):
queryset = AccountabilityItem.objects.all()
serializer_class = AccountabilityItemSerializer
permission_classes = (InGroup,)

权限.py:
from rest_framework import permissions


class InGroup(permissions.BasePermission):
"""
Custom permission to only allow owners of an object to edit it.
"""
def has_object_permission(self, request, view, obj):
print('Checking for object')
return False

另一个注意事项,我添加了 has_permission方法到 permissions.py文件,不管怎样,这个方法一直运行。

谢谢!

最佳答案

调用 has_object_permission对列表没有意义。它适用于单个实例。

您想要的是过滤您的对象列表,以便只留下用户具有某些权限的对象。 DjangoObjectPermissionsFilter这样做,但需要 django-guardian。您可能会得到类似的结果,但创建自己的过滤类 ( sources for DjangoObjectPermissionsFilter )

关于python - Django Rest Framework ListCreateAPIView 不检查 has_object_permissions?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49661615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com