Get_queryset() отсутствует 1 необходимый позиционный аргумент: 'request', когда я пытаюсь отфильтровать объекты по вошедшему пользователю
Я пытаюсь вывести список всех объектов, принадлежащих пользователю, на "странице списка объектов", используя django rest framework и react. Я пытался сделать следующее (admin_uid - это поле один к одному пользователя, владеющего объектом):
class FacilityListView(ListAPIView):
permission_classes = [AllowAny]
serializer_class = FacilitySerializer
def get_queryset(self, request):
return Facility.objects.filter(admin_uid=self.request.user)
Я получаю эту ошибку:
django | queryset = self.filter_queryset(self.get_queryset()) django | TypeError: get_queryset() missing 1 required positional argument: 'request'
>Вот что у меня было раньше, что работало, но перечисляло все объекты:
class FacilityListView(ListAPIView):
permission_classes = [AllowAny]
serializer_class = FacilitySerializer
def get_queryset(self):
return Facility.objects.all()
Вы можете это сделать
class FacilityListView(ListAPIView):
permission_classes = [AllowAny]
serializer_class = FacilitySerializer
def get_queryset(self, request):
admin_uid = self.request.user.id
return Facility.objects.filter(admin_uid=admin_uid)
Вам нужно будет сделать 2 вещи:
Первое - функция get_queryset принимает только один параметр, self, поэтому удалите request из определения fn.
Второе - Для получения подробной информации о вошедшем пользователе добавьте permission_class = [isAuthenticated]
Для не вошедшего пользователя вы можете создать другое представление с классом разрешения = allowany, потому что ваш фильтр не будет работать для не аутентифицированных пользователей.