【发布时间】:2020-05-27 04:45:15
【问题描述】:
我创建了这个自定义权限类,当我从视图发出请求时,它似乎没有被调用。我将其设置为返回 false 并且请求仍然成功。尝试放置打印语句以查看是否有任何输出但没有。不知道我在做什么。
查看:
class EventEditView(RetrieveUpdateDestroyAPIView):
authentication_classes = (SessionAuthentication, JSONWebTokenAuthentication, )
permission_classes = (EventVisibilityPerm, )
serializer_class = EventEditSerializer
def get(self, request, *args, **kwargs):
event = get_object_or_404(Event, slug=kwargs['slug'])
serializer = EventSerializer(event)
return Response(serializer.data)
Permissions.py:
class EventVisibilityPerm(permissions.BasePermission):
"""
Permission class determines whether a user has access to a specific Event
"""
def has_object_permission(self, request, view, obj):
user = request.user
if obj.user == user:
return True
**序列化器:**
class EventSerializer(serializers.ModelSerializer):
class Meta:
model = Event
exclude = ('user', 'id')
目前正在测试此详细视图的权限,但此权限也需要用于列表视图。
【问题讨论】:
-
看来你应该把
authentication_classes -
出于测试目的,我将其留空。
标签: django django-rest-framework django-views django-permissions