Overview
Django REST Framework 3.13, released on March 25, 2021, adds Django 3.2 support and improves OpenAPI schema generation.
Main Features
Django 3.2 support
DRF 3.13 is fully compatible with Django 3.2 LTS, benefiting from new functional indexes and Django ORM improvements.
python
from rest_framework import serializers, viewsets
from rest_framework.decorators import action
from rest_framework.response import Response
class ProductSerializer(serializers.ModelSerializer):
class Meta:
model = Product
fields = ['id', 'name', 'price', 'stock']
class ProductViewSet(viewsets.ModelViewSet):
queryset = Product.objects.all()
serializer_class = ProductSerializer
@action(detail=False, methods=['get'])
def in_stock(self, request):
qs = self.queryset.filter(stock__gt=0)
serializer = self.get_serializer(qs, many=True)
return Response(serializer.data)
OpenAPI improvements
Automatic OpenAPI schema generation is improved with better type support, error responses, and filter parameter handling.
python
from rest_framework.schemas import get_schema_view
from django.urls import path
# OpenAPI schema generation
schema_view = get_schema_view(
title='Products API',
description='Product management API',
version='1.0.0',
)
urlpatterns = [
path('schema/', schema_view, name='openapi-schema'),
]
