0Pricing
Django Academy · Lektion

ModelViewSet und Router

CRUD-Routen automatisch generieren

ModelViewSet und Router ist eine kostenlose Django Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Django Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Django Academy-Kurs umfasst insgesamt 4 Lektionen.

Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.

The CRUD Repetition Problem

Writing list, create, retrieve, update, and delete by hand means a lot of near-identical code. A ViewSet bundles all of it into one tidy class.

Meet ModelViewSet

The ModelViewSet gives you full CRUD for a model with almost no code. Point it at a queryset and a serializer, and it handles the rest.

from rest_framework import viewsets

class BookViewSet(viewsets.ModelViewSet):
    queryset = Book.objects.all()
    serializer_class = BookSerializer

Two Attributes Do the Work

Those two lines carry the whole class. queryset says which rows are in play, and serializer_class says how to turn them into JSON. 📦

The Actions You Get Free

A ModelViewSet provides five actions: list, create, retrieve, update, partial_update, and destroy. You wrote none of them by hand.

Why Routers Exist

A ViewSet groups actions, but URLs still need wiring. A router reads your ViewSet and generates every URL pattern automatically.

Registering with DefaultRouter

Create a DefaultRouter, register your ViewSet under a prefix, and it builds the full URL set for you.

from rest_framework.routers import DefaultRouter

router = DefaultRouter()
router.register(r'books', BookViewSet)

Plugging Router URLs In

The router exposes router.urls, a ready list of patterns. Add it to your urlpatterns and the endpoints go live instantly.

urlpatterns = [
    path('api/', include(router.urls)),
]

The URLs You Just Created

Registering one ViewSet gives you /books/ for the list and create, plus /books/{id}/ for retrieve, update, and delete. 🚀

HTTP Verbs Map to Actions

The router maps verbs to actions: GET lists, POST creates, GET on an id retrieves, PUT or PATCH updates, and DELETE destroys. One ViewSet, six behaviors.

DefaultRouter vs SimpleRouter

DefaultRouter adds a handy API root view that lists your endpoints. SimpleRouter skips it when you want a leaner URL set.

Adding a Custom Action

Need an extra endpoint? The @action decorator adds a custom route to a ViewSet without leaving the class.

from rest_framework.decorators import action

@action(detail=True, methods=['post'])
def favorite(self, request, pk=None):
    ...

Quick Check

Time to lock in how ViewSets and routers fit together.

Recap: CRUD in a Few Lines

You learned that a ModelViewSet plus a router turns two short classes into a complete CRUD API, with clean URLs generated for you. Nicely done! 🎉

Häufig gestellte Fragen

Ist die Lektion „ModelViewSet und Router“ kostenlos?

Ja — der vollständige Text von „ModelViewSet und Router“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Django Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Django Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „ModelViewSet und Router“?

CRUD-Routen automatisch generieren Du übst Django Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Django Academy zu starten?

Keine Vorkenntnisse erforderlich. Django Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „ModelViewSet und Router“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Django Academy-Lektion Code schreiben und ausführen?

Ja. Jede Django Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. ModelViewSet und Router
  2. Berechtigungen und Throttling
  3. Token- und JWT-Authentifizierung
  4. Filtern, Suchen und Seitennavigation
← Zurück zu Django Academy