Я пытаюсь выяснить, как работает разрешение Restframework, поэтому я пытаюсь написать код, который отвечает простому Json.Но наличие или отсутствие 100 permission_classes
не влияет на выполнение кода, и конечная точка будет отвечать на все запросы без проверки какого-либо разрешения.
вот мой код:
class TeacherStatisticPost(generics.RetrieveAPIView):
permission_classes = (ClassOwnerPermission)
queryset = ClassRoom.objects.all()
lookup_field = "id"
lookup_url_kwarg = 'classRoom_id'
def get_klass(self):
class_id = self.kwargs['classRoom_id']
return ClassRoom.objects.get(id=classRoom_id)
def get(self, request, *arg, **kwargs):
klass = self.get_klass()
response ={
'class_room_grade' : klass.grade,
'class_room_name' : klass.name,
}
return JsonResponse(response, safe=False)
и вот мое разрешение.py:
class ClassOwnerPermission(permissions.BasePermission):
def has_perm(self, user, klass):
print("now in class perm") # never print out any thing!
return klass.owner == user
def has_object_permission(self, request, view, obj): # where is come from 'obj' ?
return self.has_perm(request.user, obj)
я пытаюсь установить разрешение, к которому только владелец ClassRoom может получить доступэта конечная точка.