Set your Publisher ID in src/config/ads.ts to display live ads.
Building Web APIs with Django REST Framework (DRF)
Serializers, ModelSerializers, ViewSets, and JSON endpoints
Django REST Framework (DRF) is the industry standard toolkit for building powerful, scalable RESTful Web APIs on top of Django models, used by Instagram, Mozilla, and Red Hat.
Serializers and ModelViewSets
Serializers: Translate complex model querysets and Python instances into native JSON payloads, and validate deserialized client requests.
ModelSerializer: Automatically inspects a model to generate matching serializer fields and validators.
ModelViewSet: Combines full CRUD logic (list, create, retrieve, update, destroy) in a single unified class.
DefaultRouter: Automatically maps the ViewSet to standard RESTful URL endpoints.
# serializers.py
from rest_framework import serializers
from .models import Course
class CourseSerializer(serializers.ModelSerializer):
class Meta:
model = Course
fields = ['id', 'title', 'price', 'category', 'created_at']
# views.py
from rest_framework import viewsets, permissions
from .models import Course
from .serializers import CourseSerializer
class CourseViewSet(viewsets.ModelViewSet):
queryset = Course.objects.all().order_by('-created_at')
serializer_class = CourseSerializer
permission_classes = [permissions.IsAuthenticatedOrReadOnly]
# urls.py
from rest_framework.routers import DefaultRouter
from .views import CourseViewSet
router = DefaultRouter()
router.register(r'api/courses', CourseViewSet)
urlpatterns = router.urlsSet your Publisher ID in src/config/ads.ts to display live ads.
Test Yourself With Exercise
Which DRF class automatically generates serializer fields based on an underlying Django model?