str en de Meta-klasse
Maak objecten leesbaar en stel tabelgedrag in.
str en de Meta-klasse 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.
Objecten leesbaar maken
Standaard wordt een modelobject weergegeven als een vaag Object 1. Je kunt dat verbeteren en ook het gedrag van tabellen netjes vormgeven.
__str__ definiëren
Voeg een __str__-method toe die een vriendelijk label retourneert. Nu toont je object de titel in plaats van een nutteloos nummer.
class Book(models.Model):
title = models.CharField(max_length=200)
def __str__(self):
return self.titleWaar __str__ wordt weergegeven
Dat label van __str__ verschijnt in de beheeromgeving, de shell en templates, zodat elk object direct herkenbaar is. 👀
Altijd een tekenreeks retourneren
Je __str__ moet een tekenreeks retourneren. Als een field een getal kan zijn, wikkel je het vóór het retourneren in str().
def __str__(self):
return str(self.year)Maak kennis met de Meta-klasse
Een interne Meta-klasse bevat opties voor het model als geheel, los van de fields. Hiermee stem je het gedrag van de tabel af.
class Book(models.Model):
class Meta:
ordering = ["title"]ordering stelt de standaardsortering in
De Meta-optie ordering bepaalt hoe queryresultaten standaard worden gesorteerd, zodat lijsten in een voorspelbare volgorde terugkomen.
class Meta:
ordering = ["-created"]Vriendelijke namen met verbose_name
Gebruik verbose_name en verbose_name_plural in Meta om de labels te bepalen die Django in de beheerinterface toont.
class Meta:
verbose_name_plural = "Books"Aangepaste tabelnaam
Overschrijf de gegenereerde tabelnaam met db_table in Meta wanneer je moet aansluiten op een bestaande of verouderde database.
class Meta:
db_table = "catalog_books"Uniekheid over meerdere fields
De Meta-optie unique_together vereist dat een combinatie van fields uniek is, zoals één slug per auteur.
class Meta:
unique_together = ["author", "slug"]Meta beschrijft het model
Zie Meta als instellingen voor het hele model, terwijl fields en __str__ de gegevens en weergave ervan beschrijven.
Beide zijn optioneel, maar de moeite waard
Je kunt __str__ en Meta weglaten, maar als je ze toevoegt, zijn je modellen in het dagelijks gebruik veel prettiger.
Korte controle
Wat is de belangrijkste taak van de __str__-method van een model?
Samenvatting: __str__ en Meta
Je hebt geleerd dat __str__ objecten een leesbare naam geeft en dat de Meta-klasse modelbreed gedrag, zoals sortering en namen, afstemt. Verzorgde modellen! 🎉
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 “str en de Meta-klasse” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Django Academy, waaronder “str en de Meta-klasse”, 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 “str en de Meta-klasse”?
Maak objecten leesbaar en stel tabelgedrag in. 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 “str en de Meta-klasse”?
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
- Een modelklasse definiëren
- Veldtypen kiezen
- Veldopties: null, blank, default
- str en de Meta-klasse