Menu
CoddyTech

Standardreihenfolge

Teil des Abschnitts Modelle und Admin-Bereich der Django-Journey von Coddy. Lektion 6 von 23.

Deine Bücher kommen in keiner zugesicherten Reihenfolge zurück: Es gilt die Reihenfolge, die die Datenbank vorgibt. Ein Modell kann die Reihenfolge einmalig für jede Abfrage festlegen, die keine andere verlangt. Optionen für das gesamte Modell statt für ein einzelnes Feld kommen in eine innere Klasse namens Meta:

class Movie(models.Model):
    ...

    class Meta:
        ordering = ["-released", "title"]

ordering ist eine Liste von Feldnamen. Ein Name allein sortiert von niedrig nach hoch, bei Text von A bis Z; ein Minuszeichen davor sortiert in die andere Richtung. So werden hier die neuesten Filme zuerst aufgeführt. Der zweite Name löst Gleichstände auf: Filme, die am selben Tag erschienen sind, werden von A bis Z sortiert.

challenge icon

Aufgabe

Einfach
  • Sorge dafür, dass Bücher immer nach Titel von A bis Z sortiert werden, wenn keine Sortierung angegeben ist.

Klicke auf „Run“ und öffne den Tab „Data“: Die vier Bücher werden von A bis Z aufgelistet. Book.objects.all() im Tab „Shell“ zeigt dieselbe Reihenfolge.

Probier es selbst

from django.db import models


class Book(models.Model):
    class Genre(models.TextChoices):
        FICTION = "fiction", "Fiction"
        SCIFI = "scifi", "Science fiction"
        MYSTERY = "mystery", "Mystery"
        HISTORY = "history", "History"

    title = models.CharField(max_length=200)
    author = models.CharField(max_length=100)
    year = models.IntegerField()
    price = models.DecimalField(max_digits=6, decimal_places=2)
    is_read = models.BooleanField(default=False)
    finished = models.DateField(null=True, blank=True)
    summary = models.TextField(blank=True)
    genre = models.CharField(max_length=20, choices=Genre, default=Genre.FICTION)

    def __str__(self):
        return f"{self.title} by {self.author}"
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Modelle und Admin-Bereich

Übe selbstständig: Django-Playground