</>
Skip to content
Django lessons (40/43)

Django — Serializers

Basic Serializer

from rest_framework import serializers
from .models import Post

class PostSerializer(serializers.ModelSerializer):
    class Meta:
        model = Post
        fields = ['id', 'title', 'content', 'author', 'created_at']

Field Types

FieldDescription
CharFieldString
IntegerFieldInteger
BooleanFieldBoolean
DateTimeFieldDateTime
EmailFieldEmail
SlugFieldSlug
FileFieldFile
ImageFieldImage
ForeignKeyRelated object

Validation

class PostSerializer(serializers.ModelSerializer):
    def validate_title(self, value):
        if len(value) < 5:
            raise serializers.ValidationError("Title too short")
        return value
    
    def validate(self, data):
        if data['title'] == data['content']:
            raise serializers.ValidationError("Title and content differ")
        return data

Nested Serializers

class AuthorSerializer(serializers.ModelSerializer):
    class Meta:
        model = Author
        fields = ['id', 'name']

class PostSerializer(serializers.ModelSerializer):
    author = AuthorSerializer(read_only=True)
    
    class Meta:
        model = Post
        fields = ['id', 'title', 'content', 'author']

Custom Fields

class PostSerializer(serializers.ModelSerializer):
    word_count = serializers.SerializerMethodField()
    
    def get_word_count(self, obj):
        return len(obj.content.split())

Mini Practice

  1. Create a basic serializer
  2. Add field validation
  3. Use nested serializers
  4. Create custom fields

Up Next

Continue with ViewSets — combining views and serializers.

Related Topics

Frequently Asked Questions about Serializers

What is Serializers in Django?

Serializers is a fundamental concept in Django. This lesson explains it step by step with clear examples, making it easy for beginners to understand.

How do I learn Serializers?

Start by reading the explanation above, then try the code examples. Practice by modifying the examples and experimenting with different values. Hands-on practice is the best way to learn Serializers.

Why is Serializers important in Django?

Serializers is essential for Django development. Understanding this concept will help you write better code and solve real-world problems more effectively.