Django Drf view AttributeError

Я пытаюсь получить данные, связанные с request.user, но я делаю что-то неправильно.

serializers.py

class SchoolSerializerList(serializers.ModelSerializer):
     class Meta:
           model = School
           fields = ('name', 'zone', 'city', 'subCity', 'abbr',
                     'woreda', 'Schooltype', 'schoolemail', 'schoolphone', 'created_date')

views.py

 class MySchoolsView(generics.ListAPIView):
    permission_classes = [IsSchoolOwner, ]
    serializer_class = SchoolSerializerList

    def get_queryset(request):
        try:
            queryset = School.objects.filter(owner=request.user)
        except ObjectDoesNotExist:
            return Response({"error": "Nothing found."})
        return queryset

поле owner в модели школы является foreignkey для пользователя. Я хотел проверить, имеет ли текущий пользователь какие-либо школы, пытаясь сопоставить request.user с School.owner, но это возвращает ошибку атрибута, говорящую

'MySchoolsView' object has no attribute 'user'

Первым и единственным параметром get_queryset является self, а не request. Вы можете получить доступ к объекту запроса с помощью self.ruquest, так:

class MySchoolsView(generics.ListAPIView):
    permission_classes = [IsSchoolOwner, ]
    serializer_class = SchoolSerializerList

    def get_queryset(self):
        return School.objects.filter(owner=self.request.user)

Ваш get_queryset может также не возвращать Response. Вы можете поднять ошибку Http404:

from django.http import Http404

class MySchoolsView(generics.ListAPIView):
    permission_classes = [IsSchoolOwner, ]
    serializer_class = SchoolSerializerList

    def get_queryset(self):
        qs = School.objects.filter(owner=self.request.user)
        if not qs:
            raise Http404('No schools found')
        return qs
Вернуться на верх