Update ve Delete
Coddy'nin Django Journey'sinin Modeller ve Yönetim Paneli bölümünün bir parçası. Ders 12 / 23.
Fiyatlar değişir ve kitaplar raftan kalkar. Tek bir kitabı değiştirmek için özniteliğini ayarlayıp save() çağır; save() olmadan tablo eski değeri korur. Aynı anda birçok satırı değiştirmek için bir QuerySet üzerinde update() çağır. Bu, tek bir UPDATE sorgusu çalıştırır ve değişen satır sayısını döndürür. delete() de aynı şekilde çalışır ve silinen satır sayısını hem toplamda hem de modele göre döndürür:
Book.objects.filter(year__lt=1900).update(price="5.00") # 2
Book.objects.filter(price__gt=14).delete() # (1, {'books.Book': 1})Her ikisi de tam olarak QuerySet'teki satırlarda işlem yapar; bu yüzden önce filtre uygula. Book.objects.update(is_read=True) tüm kitapları işaretler ve her iki yöntem de işlem yapmadan önce onay istemez.
Görev
Kolayexplore.py dosyasında, son print satırının üstüne:
Duneindirimde: fiyatını7.99olarak ayarla.Jane Austentarafından yazılan her kitabı tek bir sorguda okunmuş olarak işaretle.- Her gizem kitabını tek bir sorguda sil.
Run düğmesine bas. Console'da 7 books on the shelf yazar; Data sekmesinde ise Dune'un fiyatı 7.99 olarak görünür ve gizem kitabı kalmaz.
Kendin dene
from books.models import Book
# 1. Dune indirimde: fiyatını 7.99 olarak ayarla.
# 2. Jane Austen'ın yazdığı tüm kitapları okundu olarak işaretle.
# 3. Tüm polisiye kitapları başkalarına ver.
print(Book.objects.count(), "books on the shelf")
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Modeller ve Yönetim Paneli bölümündeki tüm dersler
2ORM ile Sorgulama
Satır OluşturmaAll ve GetFilter ve LookupsSatırları SaymaSatırları SıralamaUpdate ve DeleteKendi başına pratik yap: Django playground