Django REST Framework

Serializers

ModelSerializer and validation

Serializers

Serializers convert models ↔ JSON and validate input.

# tasks/serializers.py
from rest_framework import serializers
from .models import Task, Project

class TaskSerializer(serializers.ModelSerializer):
    project_name = serializers.CharField(source="project.name", read_only=True)

    class Meta:
        model = Task
        fields = ["id", "title", "is_done", "priority", "project", "project_name"]
        read_only_fields = ["id"]

    def validate_title(self, value):
        if len(value.strip()) < 3:
            raise serializers.ValidationError("Title too short.")
        return value