Как изменить поведение метода retrieve в ModelViewSet

Python Middle Без компании
Как изменить поведение метода retrieve в ModelViewSet
Ответы
Для изменения поведения метода `retrieve` в `ModelViewSet` можно переопределить его в своем классе. Вот пример: ``` from rest_framework import viewsets class MyModelViewSet(viewsets.ModelViewSet): queryset = MyModel.objects.all() serializer_class = MyModelSerializer def retrieve(self, request, *args, **kwargs): instance = self.get_object() # Кастомная логика перед сериализацией serializer = self.get_serializer(instance) # Кастомная логика после сериализации return Response(serializer.data) ``` Ключевые моменты: - Используйте `self.get_object()` для получения объекта - Применяйте сериализатор через `self.get_serializer()` - Можно добавить любую дополнительную логику до/после сериализации - Возвращайте стандартный `Response` или кастомный, если нужно Также можно изменить queryset перед получением объекта или добавить проверки прав доступа.