Menu
CoddyTech

Cara Buku Ditampilkan

Termasuk bagian Model dan Admin dalam perjalanan Django di Coddy. Pelajaran 5 dari 23.

Tekan Run lalu ketik Book.objects.all() di tab Shell: setiap buku terbaca sebagai <Book: Book object (1)>, dan kamu tidak bisa membedakan buku-buku itu. Python mengubah object menjadi teks dengan method __str__, dan method yang didapat setiap model hanya menampilkan id. Model dapat mendefinisikannya sendiri. Movie di situs film mungkin menampilkan judul dan tahun:

class Movie(models.Model):
    ...

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

Shell kemudian menampilkan <Movie: Alien (1979)>, begitu juga admin dan template apa pun yang mencetak {{ movie }}. __str__ harus mengembalikan teks. Method yang mencetaknya akan mengembalikan None, lalu str() gagal dengan TypeError.

challenge icon

Tantangan

Mudah
  • Buat sebuah buku menampilkan judul dan penulisnya, seperti Dune by Frank Herbert.

Menjalankan pelajaran ini akan menambahkan empat buku. Tekan Jalankan, lalu ketik Book.objects.all() di tab Shell.

Coba sendiri

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)

Semua pelajaran di Model dan Admin

Latihan sendiri: Playground Django