Menu
CoddyTech

Aggiornare ed eliminare

Fa parte della sezione Modelli e pannello di amministrazione del percorso Django di Coddy. Lezione 12 di 23.

I prezzi cambiano e i libri vengono tolti dallo scaffale. Per modificare un libro, imposta il suo attributo e chiama save(); senza save(), la tabella mantiene il valore precedente. Per modificare più righe contemporaneamente, chiama update() su un QuerySet. Esegue un solo UPDATE e restituisce il numero di righe modificate. delete() funziona allo stesso modo e restituisce il numero di righe eliminate, in totale e per modello:

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

Entrambi agiscono esattamente sulle righe del QuerySet, quindi applica prima un filtro. Book.objects.update(is_read=True) contrassegna tutti i libri, e nessuno dei due metodi chiede conferma prima di agire.

challenge icon

Sfida

Facile

In explore.py, sopra l'ultimo print:

  1. Dune è in saldo: imposta il suo prezzo a 7.99.
  2. Segna come letti tutti i libri di Jane Austen con una sola query.
  3. Elimina tutti i libri gialli con una sola query.

Premi Run: la Console mostra 7 books on the shelf.

Provalo tu

from books.models import Book

# 1. Dune è in offerta: imposta il suo prezzo a 7.99.

# 2. Segna come letto ogni libro di Jane Austen.

# 3. Regala tutti i libri gialli.

print(Book.objects.count(), "books on the shelf")
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Modelli e pannello di amministrazione

Esercitati da solo: Playground Django