Basic Serializer
Basic Serializers
Imagine you have a Django model for Book
and you want to serialize this data to be returned as JSON through an API endpoint.
Models
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=100)
published_year = models.IntegerField()
Serializers
from rest_framework import serializers
from .models import Book
class BookSerializer(serializers.Serializer):
title = serializers.CharField(max_length=100)
author = serializers.CharField(max_length=100)
published_year = serializers.IntegerField()
Views
from rest_framework.views import APIView
from rest_framework.response import Response
from .models import Book
from .serializers import BookSerializer
class BookListView(APIView):
def get(self, request):
books = Book.objects.all()
serializer = BookSerializer(books, many=True)
return Response(serializer.data)
URLs
from django.urls import path
from .views import BookListView
urlpatterns = [
path('books/', BookListView.as_view(), name='book-list'),
]
Summary
- Basic Serializers: Used to serialize non-model-based data or when you need complete control over how each field is serialized.