python / intermediate
Snippet
Django REST Framework ViewSets und Router
ViewSets kombinieren list, create, retrieve, update und destroy Aktionen in einer einzigen Klasse. Router generieren automatisch URL-Muster, was Boilerplate reduziert und eine konsistente URL-Struktur über die gesamte API gewährleistet.
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
Erklärung
1
viewsets.ModelViewSet
Bietet alle CRUD-Operationen plus list-Aktion
2
filterset_fields
Ermöglicht automatisches Filtern via Query-Parameter
3
router.register()
Ordnet ViewSet automatisch URL-Mustern zu