PRO

Что такое сериализатор в DRF? Как создать ModelSerializer?

Сериализатор в DRF преобразует сложные объекты, например модели Django, в Python-примитивы для JSON и выполняет обратную валидацию входящих данных. ModelSerializer автоматически создаёт поля и стандартные методы на основе указанной модели.
Подробный ответ

Что делает сериализатор

Сериализатор в Django REST Framework преобразует экземпляры моделей и QuerySet в данные, которые можно вернуть в JSON-ответе. При обработке входящего запроса он также проверяет данные и может создать или обновить объект модели.

Что такое ModelSerializer

ModelSerializer — удобный класс DRF для сериализации Django-моделей. Он позволяет не описывать вручную каждое поле: достаточно указать модель и список полей в классе Meta.

from rest_framework import serializers
from .models import Article


class ArticleSerializer(serializers.ModelSerializer):
    class Meta:
        model = Article
        fields = ['id', 'title', 'text', 'is_published', 'created_at']

Как использовать для проверки данных

serializer = ArticleSerializer(data=request.data)
serializer.is_valid(raise_exception=True)
article = serializer.save()

Что можно настраивать

В сериализаторе можно задавать поля только для чтения, собственные правила валидации, вложенные сериализаторы и вычисляемые поля. Но для базового CRUD обычно достаточно ModelSerializer.

Как ответить на собеседовании

Сериализатор DRF преобразует объекты моделей в данные для JSON и валидирует входящие данные. Для модели я обычно создаю ModelSerializer, указываю модель и нужные поля в классе Meta.

Оцени свой прогресс

Честно оцени своё понимание этого вопроса, чтобы мы могли построить твой учебный трек максимально эффективно.
Читать в блоге