Урок 34. Практикум 7: Сериализаторы DRF

📁 Блок: DRF ⏱️ Время изучения: ~90 мин 🎯 Сложность: Средняя
#drf #serializers #ModelSerializer #nested #validation #read-only #практикум

⚡ Кратко: Практикум 7 — Сериализаторы DRF

13 практических задач на создание сериализаторов DRF для моделей интернет-магазина. Паттерн: два сериализатора на модель — один для чтения (с вложенными объектами), другой для записи (с FK-ключами). Добавляется валидация полей (validate_phone_number, validate_quantity).

  • Задачи 1–2: Category, Supplier — базовый ModelSerializer
  • Задачи 3–4: Product, ProductDetail — read/write-пара с nested
  • Задача 5: Address — базовый CRUD
  • Задачи 6.1–6.3: Customer — read/write + валидация телефона
  • Задачи 7.1–7.2: Order — read/write + read_only_fields
  • Задачи 8.1–8.3: OrderItem — read/write + валидация quantity

Топ-3 ошибки: 1) Забыть read_only=True у вложенного сериализатора при чтении. 2) Не указать read_only_fields для автоматических полей. 3) Не импортировать re для validate_phone_number.

📖 О чём этот урок

Урок 34 — практикум 7 по Django REST Framework. Задачи взяты из лекции «Django Practicum 7». Цель — закрепить создание ModelSerializer для всех восьми моделей интернет-магазина (Category, Supplier, Product, ProductDetail, Address, Customer, Order, OrderItem).

Новый теоретический материал не вводится — только практика. Если нужно освежить теорию сериализаторов — загляни в Урок 33.

Что закрепляем

  • Создание ModelSerializer для CRUD-операций
  • Два сериализатора на модель: для чтения (nested objects) и записи (FK-ключи)
  • read_only=True у вложенных сериализаторов
  • read_only_fields для автоматически устанавливаемых полей
  • Кастомная валидация через validate_<field_name>
  • Регулярные выражения для валидации форматов

📚 Что повторить перед изучением

🎯 Что изучать дальше