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