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
1
2
3
4
5
6
7
8
9
10
11
from rest_framework import viewsets, routersfrom .models import Articlefrom .serializers import ArticleSerializerclass ArticleViewSet(viewsets.ModelViewSet):queryset = Article.objects.all()serializer_class = ArticleSerializerfilterset_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