Я создал этот пользовательский класс разрешений, и он, кажется, не вызывается, когда я делаю запрос из представления. Я установил событие так, чтобы оно возвращало false, и запросы все еще успешны. Попытка размещения оператора печати, чтобы увидеть, будет ли вывод, но нет. Не уверен, что я делаю wring.
Просмотр:
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')
В настоящее время проверяются разрешения для этого подробного представления, но это разрешение также необходимо будет использовать в представлении списка.