Menu
CoddyTech

기본 정렬 순서

Coddy Django 여정의 모델과 관리자 섹션에 포함된 레슨. 23개 중 6번째.

책은 정해진 순서 없이 돌아옵니다. 데이터베이스가 제공하는 순서대로죠. 모델에서 한 번 순서를 지정하면, 다른 순서를 요청하지 않는 모든 쿼리에 적용됩니다. 필드 하나가 아니라 모델 전체에 적용되는 옵션은 Meta라는 내부 클래스에 넣습니다:

class Movie(models.Model):
    ...

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

ordering은 필드 이름의 목록입니다. 이름만 있으면 낮은 값에서 높은 값 순으로 정렬되며, 텍스트는 A부터 Z 순으로 정렬됩니다. 이름 앞에 빼기 기호를 붙이면 반대 순으로 정렬되므로, 여기서는 가장 최근에 개봉한 영화가 먼저 나옵니다. 두 번째 이름은 순위가 같은 항목을 구분합니다. 같은 날 개봉한 영화는 A부터 Z 순으로 나옵니다.

challenge icon

챌린지

쉬움

books/models.py에서 별도의 정렬 순서를 지정하지 않으면 책이 제목 순서대로, A부터 Z까지 나오도록 설정하세요.

‘실행’을 누르고 셸 탭에 Book.objects.all()을 입력하세요. 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}"
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

모델과 관리자의 모든 레슨

직접 연습해 보세요: Django 플레이그라운드