Menu
CoddyTech

Danh sách từ cơ sở dữ liệu

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

Trang chủ vẫn liệt kê ba tiêu đề được viết sẵn trong view. View là nơi trang lấy dữ liệu: nó yêu cầu ORM truy vấn các hàng và truyền QuerySet cho template, giống như trước đây bạn đã truyền một danh sách. Trang hiển thị những cuốn sách bạn chưa đọc sẽ như sau:

from django.shortcuts import render

from .models import Book


def to_read(request):
    books = Book.objects.filter(is_read=False)
    return render(request, "books/to_read.html", {"books": books})

Dấu chấm trong from .models nghĩa là thư mục riêng của ứng dụng này. Trong template, mỗi phần tử của vòng lặp là một Book, vì vậy {{ book.title }} và {{ book.price }} đọc các trường của nó, còn riêng {{ book }} sẽ in ra __str__ của nó.

challenge icon

Thử thách

Dễ

Hiển thị danh sách sách có thật trên trang chủ.

  1. Trong books/views.py, truyền cho mẫu mọi cuốn sách trong cơ sở dữ liệu dưới tên books, thay cho danh sách viết sẵn.
  2. Trong home.html, hiển thị mỗi cuốn sách bằng tên sách và năm xuất bản trong ngoặc, như Dune (1965).

Trong thẻ Shell, nhập Book.objects.create(title="Beloved", author="Toni Morrison", year=1987, price="13.00") rồi tải lại /: Beloved (1987) đứng đầu danh sách.

Tự làm thử

from django.shortcuts import render


def home(request):
    books = ["Dune", "Emma", "The Hobbit"]
    return render(request, "books/home.html", {"books": books})

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

Tự luyện tập: Playground Django