Inlines en alleen-lezenvelden
Bewerk gerelateerde rijen inline en bescherm velden.
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 = CommentKoppel 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 = 1De 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. ✅
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
- createsuperuser en inloggen
- Modellen registreren met admin.site
- ModelAdmin aanpassen
- Inlines en alleen-lezenvelden