Порядок по умолчанию
Часть раздела Модели и панель администратора путешествия по Django на Coddy. Урок 6 из 23.
Ваши книги возвращаются без гарантированного порядка: в том порядке, который задаёт база данных. Модель может задать порядок один раз для всех запросов, в которых не запрошен другой. Параметры всей модели, а не отдельного поля, помещаются во внутренний класс с именем Meta:
class Movie(models.Model):
...
class Meta:
ordering = ["-released", "title"]ordering — это список имён полей. Имя без дополнительных символов задаёт сортировку от меньшего к большему, для текста — от А до Я; минус перед именем задаёт обратный порядок, поэтому здесь сначала идут самые новые фильмы. Второе имя разрешает совпадения: фильмы, вышедшие в один день, идут от А до Я.
Задание
ЛегкоВ books/models.py настройте вывод книг в алфавитном порядке по названию, от А до Я, если порядок явно не задан.
Нажмите «Играть» и введите Book.objects.all() на вкладке Shell: сначала будет Dune, а последним — The Hobbit.
Попробуйте сами
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}"
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Модели и панель администратора
1Ваша первая модель
Ваша первая модельТипы полейПотренируйтесь самостоятельно: Песочница Django