Что такое SerializerMethodField в Django

Python Senior Без компании
Что такое SerializerMethodField в Django
Ответы
`SerializerMethodField` — это поле в Django REST Framework, которое позволяет добавлять в сериализатор произвольные вычисляемые значения. Оно вызывает метод, указанный в параметре `method_name`, и возвращает его результат. **Пример:** ``` from rest_framework import serializers class UserSerializer(serializers.ModelSerializer): full_name = serializers.SerializerMethodField() class Meta: model = User fields = ['id', 'username', 'full_name'] def get_full_name(self, obj): return f"{obj.first_name} {obj.last_name}" ``` **Особенности:** - Метод должен начинаться с `get_` (например, `get_full_name`). - Принимает объект модели (`obj`) и может использовать контекст сериализатора (`self.context`). - Поле доступно только для чтения (`read_only=True`). - Полезно для данных, не хранящихся напрямую в модели.