All ve Get
Coddy'nin Django Journey'sinin Modeller ve Yönetim Paneli bölümünün bir parçası. Ders 8 / 23.
Bir sayfanın kitabı gösterebilmesi için kodunuzun önce onu yeniden okuması gerekir. Book.objects.all(), üzerinde döngü kurabileceğiniz liste benzeri bir nesne olan QuerySet döndürür; her öğe, alanları öznitelik olarak bulunan bir Book nesnesidir. get() tam olarak bir satır getirir:
for book in Book.objects.all():
print(book.author, book.year)
emma = Book.objects.get(title="Emma")
print(emma.year) # 1815get() tek bir eşleşme bekler. Eşleşme bulunamazsa Book.DoesNotExist, birden fazla eşleşme bulunursa Book.MultipleObjectsReturned hatası oluşur; bunları diğer tüm istisnalar gibi yakalayabilirsiniz. Buradaki iki kitap Jane Austen tarafından yazılmıştır:
try:
Book.objects.get(author="Jane Austen")
except Book.MultipleObjectsReturned:
print("More than one")Yakalanmazsa istisna, betiği o satırda durdurur.
Görev
Kolayexplore.py dosyasını yeniden yaz:
- Her kitabın başlığını satır başına bir tane olacak şekilde yazdır.
Dunekitabını al veDune costsifadesini ve fiyatını yazdır:Dune costs 9.99.- Rafta bulunmayan
Ulysseskitabını ara ve hata vermek yerineUlysses is not on the shelfyazdır.
Run'a bas. Konsol önce dokuz başlığı, ardından iki cümleyi listeler.
Kendin dene
from books.models import Book
# 1. Her kitabın başlığını, her satıra bir tane gelecek şekilde yazdır.
# 2. Dune kitabını getir ve fiyatını yazdır.
# 3. Ulysses kitabını ara.
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
Kendi başına pratik yap: Django playground