0 day streak
python / intermediate
Snippet

Django REST Framework ViewSets and Routers

ViewSets combine list, create, retrieve, update, and destroy actions into a single class. Routers automatically generate URL patterns, reducing boilerplate and ensuring consistent URL structure across your API.

snippet.py
python
1
2
3
4
5
6
7
8
9
10
11
from rest_framework import viewsets, routers
from .models import Article
from .serializers import ArticleSerializer
class ArticleViewSet(viewsets.ModelViewSet):
queryset = Article.objects.all()
serializer_class = ArticleSerializer
filterset_fields = ['status', 'category']
router = routers.DefaultRouter()
router.register(r'articles', ArticleViewSet, basename='article')
django
Breakdown
1
viewsets.ModelViewSet
Provides all CRUD operations plus list action
2
filterset_fields
Enables automatic filtering via query parameters
3
router.register()
Maps ViewSet to URL patterns automatically