Menu
CoddyTech

Aktualizowanie i usuwanie

Część sekcji Modele i panel administracyjny ścieżki Django w Coddy. Lekcja 12 z 23.

Ceny się zmieniają, a książki znikają z półki. Aby zmienić jedną książkę, ustaw jej atrybut i wywołaj save(); bez save() tabela zachowuje starą wartość. Aby zmienić wiele wierszy naraz, wywołaj update() na QuerySet. Wykonuje jedno UPDATE i zwraca liczbę zmienionych wierszy. delete() działa tak samo i zwraca liczbę usuniętych wierszy — łącznie i dla każdego modelu:

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

Obie metody działają dokładnie na wierszach z QuerySet, więc najpierw użyj filtra. Book.objects.update(is_read=True) oznacza każdą książkę, a żadna z tych metod nie pyta o potwierdzenie przed wykonaniem działania.

challenge icon

Wyzwanie

Łatwy

W pliku explore.py, powyżej ostatniego print:

  1. Książka Dune jest w promocji: ustaw jej cenę na 7.99.
  2. Oznacz wszystkie książki autorstwa Jane Austen jako przeczytane, używając jednego zapytania.
  3. Usuń wszystkie książki z gatunku mystery, używając jednego zapytania.

Naciśnij Run. Konsola wyświetli 7 books on the shelf, a karta Data pokaże książkę Dune z ceną 7.99 i brak książek z gatunku mystery.

Spróbuj swoich sił

from books.models import Book

# 1. Dune jest w promocji: ustaw jej cenę na 7.99.

# 2. Oznacz każdą książkę autorstwa Jane Austen jako przeczytaną.

# 3. Oddaj wszystkie książki kryminalne.

print(Book.objects.count(), "books on the shelf")
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Modele i panel administracyjny

Poćwicz samodzielnie: Edytor online Django