Как работает Serializer в Django REST
Python
Middle
Без компании
Как работает Serializer в Django REST
Ответы
Django REST Framework (DRF) использует сериализаторы для преобразования сложных типов данных (например, моделей Django) в JSON/XML и обратно. Они также выполняют валидацию данных.
**Основные функции:**
- **Сериализация** – преобразование объектов Python (QuerySet, Model) в JSON
- **Десериализация** – преобразование JSON в объекты Python с валидацией
- **Валидация** – проверка входящих данных перед сохранением
**Пример базового сериализатора:**
```
from rest_framework import serializers
from .models import Book
class BookSerializer(serializers.ModelSerializer):
class Meta:
model = Book
fields = ['id', 'title', 'author', 'published_date']
def validate_title(self, value):
if len(value) < 5:
raise serializers.ValidationError("Title too short")
return value
```
**Типы сериализаторов:**
- `Serializer` – базовый класс для ручной настройки
- `ModelSerializer` – автоматически работает с моделями Django
- `HyperlinkedModelSerializer` – добавляет гиперссылки вместо ID
Сериализаторы интегрируются с DRF ViewSets и обеспечивают безопасное преобразование данных между клиентом и сервером.