Что такое SerializerMethodField в Django
Python
Middle
Без компании
Что такое 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`).
- Полезно для данных, не хранящихся напрямую в модели.