Django Academy · Les

Inlines en alleen-lezenvelden

Bewerk gerelateerde rijen inline en bescherm velden.

Les 4 van 413 stappen

Inlines en alleen-lezenvelden is een gratis Django Academy-les op CoddyKit. Dit is les 4 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.

Bewerk gerelateerde rijen samen

Soms horen gerelateerde records op dezelfde pagina te staan. Met een inline kun je onderliggende rijen rechtstreeks in het bewerkingsformulier van hun bovenliggende record bewerken. 🧩

Twee stijlen voor inlines

Django biedt twee indelingen. Een TabularInline toont rijen in een compacte tabel, terwijl StackedInline elke rij als een afzonderlijk blok onder de vorige plaatst.

Definieer een inline

Maak een kleine klasse die een subklasse is van TabularInline en waarvan het modelattribuut verwijst naar het onderliggende model dat je wilt insluiten.

class CommentInline(admin.TabularInline):
    model = Comment

Koppel hem aan het bovenliggende model

Vermeld je inline in de beheerklasse van het bovenliggende model. De optie inlines vertelt Django dat het die onderliggende rijen in het formulier moet weergeven.

class PostAdmin(admin.ModelAdmin):
    inlines = [CommentInline]

Extra lege rijen

Inlines tonen lege rijen om snel iets toe te voegen. Stel extra in om het aantal lege plaatsen te bepalen; vaak is één genoeg.

extra = 1

De ForeignKey-vereiste

Inlines werken alleen als het onderliggende model een ForeignKey naar het bovenliggende model heeft. Via die koppeling weet Django welke rijen bij elkaar horen.

Beveilig een veld

Sommige waarden moeten zichtbaar zijn, maar mogen nooit handmatig worden bewerkt. Voeg ze toe aan readonly_fields en de beheeromgeving toont ze als vergrendeld. 🔒

readonly_fields = ("created", "updated")

Automatische tijdstempels

Velden zoals een datum met auto_now_add worden door Django ingesteld, niet door mensen. Door ze readonly te maken, voorkom je verwarrende wijzigingen die niet kunnen worden opgeslagen.

Toon een berekende waarde

readonly_fields kan ook een methode bevatten. Zo kun je een berekende waarde tonen waarvoor geen echte databasekolom bestaat.

def word_count(self, obj):
    return len(obj.body.split())

Alleen-lezen binnen inlines

Inlines accepteren ook readonly_fields. Gebruik dit om gegevens van onderliggende records duidelijk te tonen en gevoelige kolommen toch niet-bewerkbaar te houden.

Rechten blijven van toepassing

Alleen-lezen gaat over het formulier, niet over beveiliging. De daadwerkelijke toegang wordt bepaald door gebruikersrechten, dus combineer beide voor veilig bewerken.

Snelle controle

Wat is vereist om een model als inline te laten verschijnen?

Samenvatting

Je hebt gerelateerde rijen ingesloten met inlines en gevoelige waarden vergrendeld met readonly_fields. Samen maken ze bewerken in de beheeromgeving uitgebreid én veilig. ✅

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 “Inlines en alleen-lezenvelden” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad Django Academy, waaronder “Inlines en alleen-lezenvelden”, 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 “Inlines en alleen-lezenvelden”?

Bewerk gerelateerde rijen inline en bescherm velden. 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 4 van 4.

Hoe lang duurt de les “Inlines en alleen-lezenvelden”?

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. createsuperuser en inloggen
  2. Modellen registreren met admin.site
  3. ModelAdmin aanpassen
  4. Inlines en alleen-lezenvelden
← Terug naar Django Academy