De Django Admin
Beheer gegevens met de beheersite
De Django Admin is een gratis Python Academy-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Python Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Python Academy bevat in totaal 4 lessen.
De ingebouwde beheeromgeving
Django wordt geleverd met een krachtige beheeromgeving: een automatisch gegenereerde webinterface om je gegevens te beheren. Het is een van de populairste functies van Django.
# The admin gives you CRUD screens
# for your models with zero UI code
print('Django admin manages data out of the box')De beheeromgeving is al geïnstalleerd
De beheeromgeving staat in django.contrib.admin, dat standaard is opgenomen in INSTALLED_APPS, en is gekoppeld in het urls.py-bestand van het project.
# mysite/urls.py
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
]
print('admin/ is mapped to the admin site')Een supergebruiker maken
Om in te loggen heb je een beheerdersaccount nodig. Maak er een met python manage.py createsuperuser en volg de aanwijzingen.
# python manage.py createsuperuser
# Username: admin
# Email: admin@example.com
# Password: ********
print('createsuperuser makes an admin login')Inloggen
Start de server en ga naar /admin/. Log in met de inloggegevens van je supergebruiker om het dashboard te openen.
# python manage.py runserver
# Open http://127.0.0.1:8000/admin/
print('Visit /admin/ and log in')Een model registreren
Modellen verschijnen pas in de beheeromgeving nadat je ze hebt geregistreerd. Doe dit in het admin.py-bestand van de app met admin.site.register().
# blog/admin.py
from django.contrib import admin
from .models import Post
admin.site.register(Post)
print('Post now appears in the admin')Gegevens beheren
Na registratie krijg je volledige CRUD-schermen: alle rijen weergeven, nieuwe rijen toevoegen, bewerken en verwijderen, zonder formulieren te hoeven schrijven.
# In the admin you can:
# - view a list of all Posts
# - add a new Post
# - edit or delete existing ones
print('Full CRUD with no extra code')Aanpassen met ModelAdmin
Een klasse ModelAdmin bepaalt hoe een model wordt weergegeven. list_display kiest welke kolommen in de lijstweergave worden getoond.
from django.contrib import admin
from .models import Post
class PostAdmin(admin.ModelAdmin):
list_display = ('title', 'created', 'published')
admin.site.register(Post, PostAdmin)
print('list_display picks the columns')Zoeken en filteren
Voeg search_fields toe voor een zoekvak en list_filter voor filters in de zijbalk, zodat je door grote gegevensverzamelingen kunt navigeren.
from django.contrib import admin
from .models import Post
class PostAdmin(admin.ModelAdmin):
search_fields = ('title',)
list_filter = ('published',)
admin.site.register(Post, PostAdmin)
print('Search box and sidebar filters added')De register-decorator
De decorator @admin.register() is een overzichtelijk alternatief voor het afzonderlijk aanroepen van admin.site.register().
from django.contrib import admin
from .models import Post
@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
list_display = ('title',)
print('@admin.register is the decorator form')__str__ is belangrijk
Definieer __str__ in je model, zodat de beheeromgeving een leesbaar label toont in plaats van 'Post object (1)'.
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200)
def __str__(self):
return self.title
print('__str__ gives a readable admin label')Rechten
De beheeromgeving houdt rekening met gebruikersrechten. Je kunt medewerkersaccounts met beperkte rechten maken, zodat niet iedereen volledige toegang als supergebruiker heeft.
# Staff users (is_staff=True) can access the admin
# Permissions control which models they can edit
print('Permissions limit admin access')Korte controle
Test je kennis van de beheeromgeving.
Samenvatting
Je hebt de Django-beheeromgeving gebruikt om gegevens te beheren.
- De beheeromgeving is ingebouwd en gekoppeld aan
/admin/ - Maak een account met
createsuperuser - Registreer modellen in
admin.pyvoor CRUD-schermen ModelAdminpast kolommen, zoeken en filters aan- Definieer
__str__voor leesbare labels; rechten beperken de toegang
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
- 76
- Lessen
- 320
Veelgestelde vragen
Is de les “De Django Admin” gratis?
Ja — de volledige tekst van “De Django Admin” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Python Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Python Academy bevat in totaal 4 lessen.
Wat leer ik in “De Django Admin”?
Beheer gegevens met de beheersite Je oefent met Python 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 Python Academy te beginnen?
Ervaring vooraf is niet nodig. Python 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 “De Django Admin”?
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 Python Academy?
Ja. Elke les over Python 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
- Projecten en apps
- Modellen en migraties
- Views en URL's
- De Django Admin