Menu
CoddyTech

Bir Kitap Nasıl Görüntülenir

Coddy'nin Django Journey'sinin Modeller ve Yönetim Paneli bölümünün bir parçası. Ders 5 / 23.

Çalıştır'a basın ve Shell sekmesine Book.objects.all() yazın: her kitap <Book: Book object (1)> olarak görünür ve onları birbirinden ayıramazsınız. Python, bir nesneyi __str__ yöntemiyle metne dönüştürür ve her modelin sahip olduğu yöntem yalnızca kimliği gösterir. Bir model kendi yöntemini tanımlayabilir. Bir film sitesindeki Movie, başlığını ve yılını yazdırabilir:

class Movie(models.Model):
    ...

    def __str__(self):
        return f"{self.title} ({self.released.year})"

Ardından Shell'de <Movie: Alien (1979)> görünür; aynı şekilde yönetici arayüzünde ve {{ movie }} yazdıran tüm şablonlarda da görünür. __str__ metni return etmelidir. Metni yazdıran bir yöntem None döndürür ve bu durumda str() bir TypeError hatası verir.

challenge icon

Görev

Kolay
  • Bir kitabı, Dune by Frank Herbert örneğindeki gibi başlığı ve yazarıyla birlikte yazdır.

Bu dersin Çalıştır düğmesi dört kitap ekler. Çalıştır'a bas ve Shell sekmesine Book.objects.all() yaz.

Kendin dene

from django.db import models


class Book(models.Model):
    class Genre(models.TextChoices):
        FICTION = "fiction", "Fiction"
        SCIFI = "scifi", "Science fiction"
        MYSTERY = "mystery", "Mystery"
        HISTORY = "history", "History"

    title = models.CharField(max_length=200)
    author = models.CharField(max_length=100)
    year = models.IntegerField()
    price = models.DecimalField(max_digits=6, decimal_places=2)
    is_read = models.BooleanField(default=False)
    finished = models.DateField(null=True, blank=True)
    summary = models.TextField(blank=True)
    genre = models.CharField(max_length=20, choices=Genre, default=Genre.FICTION)

Modeller ve Yönetim Paneli bölümündeki tüm dersler

Kendi başına pratik yap: Django playground