Встречается на собеседованиях • сегодня

Что такое SerializerMethodField в Django

SerializerMethodField — это поле в Django REST Framework, которое позволяет добавлять в сериализатор произвольные вычисляемые значения. Оно вызывает метод, указанный в параметре method_name, и возвращает его результат.

Пример:

python
from rest_framework import serializers

class UserSerializer(serializers.ModelSerializer):
full_name = serializers.SerializerMethodField()

text
class Meta:
    model = User
    fields = ['id', 'username', 'full_name']

def get_full_name(self, obj):
    return f"{obj.first_name} {obj.last_name}"
text

**Особенности:**
- Метод должен начинаться с `get_` (например, `get_full_name`).
- Принимает объект модели (`obj`) и может использовать контекст сериализатора (`self.context`).
- Поле доступно только для чтения (`read_only=True`).
- Полезно для данных, не хранящихся напрямую в модели.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы