기본 정렬 순서
Coddy Django 여정의 모델과 관리자 섹션에 포함된 레슨. 23개 중 6번째.
책은 약속된 순서 없이, 데이터베이스가 반환하는 순서대로 돌아옵니다. 모델은 다른 순서를 요청하지 않는 모든 쿼리에 대해 한 번에 적용할 기본 순서를 설정할 수 있습니다. 특정 필드가 아니라 모델 전체에 적용되는 옵션은 Meta라는 내부 클래스에 넣습니다:
class Movie(models.Model):
...
class Meta:
ordering = ["-released", "title"]ordering은 필드 이름 목록입니다. 이름만 쓰면 오름차순으로 정렬되며, 텍스트는 A에서 Z 순으로 정렬됩니다. 이름 앞에 마이너스 기호를 붙이면 반대 방향으로 정렬되므로, 이 설정은 최신 영화부터 나열합니다. 두 번째 이름은 순위가 같은 항목을 구분합니다. 같은 날 개봉한 영화는 A에서 Z 순으로 정렬됩니다.
챌린지
쉬움- 별도의 정렬 순서를 지정하지 않으면 책이 제목순으로 A부터 Z까지 표시되도록 하세요.
Run을 누르고 Data 탭을 여세요. 네 권의 책이 A부터 Z까지 나열됩니다. Shell 탭의 Book.objects.all()에서도 같은 순서로 표시됩니다.
직접 해보기
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}"
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
모델과 관리자의 모든 레슨
직접 연습해 보세요: Django 플레이그라운드