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ó.
Thử thách
DễHiển thị danh sách sách có thật trên trang chủ.
- Trong
books/views.py, truyền cho mẫu mọi cuốn sách trong cơ sở dữ liệu dưới tênbooks, thay cho danh sách viết sẵn. - 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