Django Academy · Les

Serializers: model naar JSON

Objecten van en naar JSON converteren

Les 2 van 413 stappen

Serializers: model naar JSON is een gratis Django Academy-les op CoddyKit. Dit is les 2 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Django Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Django Academy bevat in totaal 4 lessen.

De vertaal-laag

Een serializer is de vertaler van DRF: deze zet je modelinstanties om in JSON om te versturen en verwerkt binnenkomende JSON weer tot Python.

Waarom niet gewoon json.dumps?

Ruwe json.dumps kan niet overweg met modelobjecten of validatie. Een serializer begrijpt velden, typen en regels en neemt het zware werk voor je uit handen.

Kennismaken met ModelSerializer

De snelste start is ModelSerializer: wijs deze naar een model en hij genereert automatisch overeenkomende velden, net zoals een ModelForm dat doet.

from rest_framework import serializers

Er één declareren

Maak een subklasse van ModelSerializer en gebruik een interne Meta-klasse om het model en de velden te benoemen die je in de API beschikbaar wilt maken.

class BookSerializer(serializers.ModelSerializer):
    class Meta:
        model = Book
        fields = ['id', 'title']

Velden kiezen

Vermeld velden expliciet of gebruik fields = '__all__' om ze allemaal op te nemen. Expliciet zijn is veiliger, omdat er nooit per ongeluk nieuwe kolommen uitlekken.

Serialiseren naar JSON

Geef een instantie door aan de serializer en lees het attribuut .data om een Python-woordenboek te krijgen met gewone waarden die direct naar JSON kunnen worden omgezet.

ser = BookSerializer(book)
ser.data  # {'id': 1, 'title': 'Dune'}

Meerdere objecten tegelijk

Voeg many=True toe om een volledige queryset te serialiseren. DRF retourneert dan in één stap een lijst met woordenboeken, één per object.

BookSerializer(books, many=True).data

Invoer deserialiseren

In de andere richting geef je data= door met binnenkomende JSON, zodat de serializer kan verwerken en later kan valideren wat een client heeft verstuurd.

ser = BookSerializer(data=request.data)

De invoer valideren

Roep is_valid() aan voordat je de invoer vertrouwt. De methode voert de controles van elk veld uit en vult validated_data, of verzamelt fouten die je kunt teruggeven.

ser.is_valid()
ser.errors

Netjes opslaan

Als de gegevens geldig zijn, maakt save() de modelinstantie aan of werkt deze bij. Zo verzorgt een serializer zowel de vertaling als de persistentie in één object.

ser.save()

Formulieren, maar dan voor API's

Zie een serializer als een formulier voor API's: het geeft gegevens weer, valideert binnenkomende gegevens en slaat ze op, allemaal zonder HTML.

Snelle controle

Wat levert .data op bij een modelserializer?

Samenvatting: serializers

Je hebt geleerd dat een ModelSerializer modellen omzet in JSON, binnenkomende gegevens valideert en ze opslaat. Het vormt de brug van je API. 🔁

Gratis beginnen

Leer Python met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
30
Lessen
120

Veelgestelde vragen

Is de les “Serializers: model naar JSON” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad Django Academy, waaronder “Serializers: model naar JSON”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Django Academy bevat in totaal 4 lessen.

Wat leer ik in “Serializers: model naar JSON”?

Objecten van en naar JSON converteren Je oefent met Django Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Django Academy te beginnen?

Ervaring vooraf is niet nodig. Django Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.

Hoe lang duurt de les “Serializers: model naar JSON”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Django Academy?

Ja. Elke les over Django Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. DRF installeren en configureren
  2. Serializers: model naar JSON
  3. APIView en functie-@api_view
  4. De browsable API en statuscodes
← Terug naar Django Academy