Переопределение RetrieveUpdateAPIView Django Rest Framework

Сейчас я переопределяю всю функцию получения и обновления. Я хочу переопределить только ту часть, которая не запрашивает значение pk. Спасибо

View.py

class EmployeeView(generics.RetrieveUpdateAPIView):

   permission_classes = [EmployeePermission]
   serializer_class = EmployeeSerializers

   def retrieve(self, request, *args, **kwargs):
       employee = Employee.objects.get(user=self.request.user)
       serializer = EmployeeSerializers(employee)
       return Response(serializer.data)

   def update(self, request, *args, **kwargs):
       employee_user = Employee.objects.get(user=self.request.user)
       serializer = EmployeeSerializers(employee_user, data=request.data)
       if serializer.is_valid():
           serializer.save()
           return Response(serializer.data)
       return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)strong text

urls.py

path('viewEmployee/', views.EmployeeView.as_view()),

что вам нужно, так это переопределить метод get_queryset, и написать свою пользовательскую фильтрацию, тогда django позаботится о других вещах.

class EmployeeView(generics.RetrieveUpdateAPIView):
   queryset = Employee.objects.all()
   permission_classes = [EmployeePermission]
   serializer_class = EmployeeSerializers

   def get_queryset(self):
        return super().get_queryset().filter(
            user=self.request.user
        )
Вернуться на верх