Serializers help change complex data like database objects into simple formats like JSON. This makes it easy to send data over the internet or save it in files.
0
0
Serializers for data conversion in Django
Introduction
When you want to send database data to a web page or app in JSON format.
When you receive JSON data from a user and want to turn it into database objects.
When building APIs that share data between servers and clients.
When you need to validate incoming data before saving it.
When converting data to formats like XML or YAML for other uses.
Syntax
Django
from rest_framework import serializers class MyModelSerializer(serializers.Serializer): field1 = serializers.CharField(max_length=100) field2 = serializers.IntegerField() def create(self, validated_data): return MyModel.objects.create(**validated_data) def update(self, instance, validated_data): instance.field1 = validated_data.get('field1', instance.field1) instance.field2 = validated_data.get('field2', instance.field2) instance.save() return instance
Use serializers.Serializer for custom serializers or serializers.ModelSerializer for automatic fields from models.
The create and update methods handle saving data to the database.
Examples
This example uses
ModelSerializer to automatically create fields from the User model.Django
from rest_framework import serializers from django.contrib.auth.models import User class UserSerializer(serializers.ModelSerializer): class Meta: model = User fields = ['id', 'username', 'email']
This example defines a serializer manually without linking to a model.
Django
from rest_framework import serializers class ProductSerializer(serializers.Serializer): name = serializers.CharField(max_length=200) price = serializers.DecimalField(max_digits=10, decimal_places=2)
Sample Program
This code defines a Book model and a serializer that converts a Book object into a dictionary. The printed output shows the book data in a simple format.
Django
from rest_framework import serializers from django.db import models # Simple model class Book(models.Model): title = models.CharField(max_length=100) author = models.CharField(max_length=100) # Serializer for the Book model class BookSerializer(serializers.ModelSerializer): class Meta: model = Book fields = ['title', 'author'] # Example usage book_instance = Book(title='The Hobbit', author='J.R.R. Tolkien') serializer = BookSerializer(book_instance) print(serializer.data)
OutputSuccess
Important Notes
Serializers also validate data automatically based on field types.
Always use serializers when building APIs to keep data consistent and safe.
Summary
Serializers convert complex data to simple formats like JSON.
They help send and receive data in web APIs easily.
Use ModelSerializer for quick setup with Django models.