Menu
CoddyTech

Thứ tự mặc định

Thuộc phần Model và trang quản trị trong hành trình Django của Coddy. Bài học 6 trên 23.

Sách của bạn được trả về theo thứ tự không cố định, tùy theo dữ liệu mà cơ sở dữ liệu cung cấp. Một model có thể đặt thứ tự một lần cho mọi truy vấn không yêu cầu thứ tự khác. Các tùy chọn áp dụng cho toàn bộ model, thay vì một trường, nằm trong lớp bên trong có tên Meta:

class Movie(models.Model):
    ...

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

ordering là danh sách tên trường. Tên trường đứng riêng sẽ sắp xếp từ thấp đến cao, từ A đến Z với văn bản; dấu trừ ở phía trước sẽ sắp xếp theo chiều ngược lại, vì vậy danh sách này đưa các phim mới nhất lên trước. Tên trường thứ hai dùng để phân định khi các giá trị bằng nhau: những phim ra mắt cùng ngày sẽ được sắp xếp từ A đến Z.

challenge icon

Thử thách

Dễ

Trong books/models.py, hãy để sách luôn được sắp xếp theo thứ tự tiêu đề từ A đến Z khi không có yêu cầu sắp xếp nào.

Nhấn Chạy rồi nhập Book.objects.all() vào tab Shell: Dune đứng đầu và The Hobbit đứng cuối.

Tự làm thử

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 iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Model và trang quản trị

Tự luyện tập: Playground Django