Menu
CoddyTech

Cập nhật và xóa

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

Giá cả thay đổi và sách rời khỏi kệ. Để thay đổi một cuốn sách, hãy đặt thuộc tính của nó rồi gọi save(); nếu không gọi save(), bảng vẫn giữ giá trị cũ. Để thay đổi nhiều hàng cùng lúc, hãy gọi update() trên một QuerySet. Lệnh này chạy một câu lệnh UPDATE và trả về số hàng đã thay đổi. delete() hoạt động tương tự và trả về tổng số hàng đã xóa, cũng như số hàng đã xóa theo từng lớp:

Book.objects.filter(year__lt=1900).update(price="5.00")   # 2
Book.objects.filter(price__gt=14).delete()   # (1, {'books.Book': 1})

Cả hai chỉ tác động đến các hàng trong QuerySet, vì vậy hãy lọc trước. Book.objects.update(is_read=True) đánh dấu mọi cuốn sách là đã đọc, và cả hai phương thức đều không hỏi trước khi thực hiện.

challenge icon

Thử thách

Dễ

Trong explore.py, phía trên print cuối cùng:

  1. Dune đang giảm giá: đặt giá của sách thành 7.99.
  2. Đánh dấu mọi cuốn sách của Jane Austen là đã đọc bằng một truy vấn.
  3. Xóa mọi cuốn sách trinh thám bằng một truy vấn.

Nhấn Chạy: Console hiển thị 7 books on the shelf.

Tự làm thử

from books.models import Book

# 1. Dune đang giảm giá: đặt giá của sách thành 7.99.

# 2. Đánh dấu tất cả sách của Jane Austen là đã đọc.

# 3. Tặng tất cả sách trinh thám.

print(Book.objects.count(), "books on the shelf")
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