Menu
CoddyTech

Memperbarui dan Menghapus

Termasuk bagian Model dan Admin dalam perjalanan Django di Coddy. Pelajaran 12 dari 23.

Harga berubah dan buku bisa tidak lagi tersedia di rak. Untuk mengubah satu buku, atur atributnya lalu panggil save(); tanpa save(), tabel tetap menyimpan nilai lama. Untuk mengubah banyak baris sekaligus, panggil update() pada QuerySet. Perintah ini menjalankan satu UPDATE dan mengembalikan jumlah baris yang berubah. delete() bekerja dengan cara yang sama dan mengembalikan jumlah baris yang dihapus, secara keseluruhan dan per model:

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

Keduanya hanya bekerja pada baris yang ada di QuerySet, jadi lakukan filter terlebih dahulu. Book.objects.update(is_read=True) menandai setiap buku, dan kedua method tidak meminta konfirmasi sebelum bertindak.

challenge icon

Tantangan

Mudah

Di explore.py, di atas print terakhir:

  1. Dune sedang diskon: tetapkan harganya menjadi 7.99.
  2. Tandai setiap buku karya Jane Austen sebagai sudah dibaca, dalam satu query.
  3. Hapus setiap buku misteri, dalam satu query.

Tekan Jalankan. Console menampilkan 7 books on the shelf, dan tab Data menunjukkan Dune dengan harga 7.99 dan tanpa buku misteri.

Coba sendiri

from books.models import Book

# 1. Dune sedang diskon: atur harganya menjadi 7.99.

# 2. Tandai semua buku karya Jane Austen sebagai sudah dibaca.

# 3. Berikan semua buku misteri kepada orang lain.

print(Book.objects.count(), "books on the shelf")
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Model dan Admin

Latihan sendiri: Playground Django