Menu
CoddyTech

Pilihan

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

Genre sebaiknya hanya memiliki beberapa nilai, bukan sembarang teks. Opsi choices membatasi field pada sebuah daftar yang diberikan sebagai class enumerasi. Situs film dapat membatasi siapa yang boleh menonton sebuah film:

class Movie(models.Model):
    class Age(models.TextChoices):
        ALL = "all", "All ages"
        TEEN = "teen", "13 and over"
        ADULT = "adult", "18 and over"

    age = models.CharField(max_length=10, choices=Age, default=Age.ALL)

Setiap anggota memiliki nilai yang disimpan di database, "teen", dan label yang dibaca orang, "13 and over". Dalam kodemu, tulis Movie.Age.TEEN, sehingga salah ketik akan menjadi error, bukan nilai baru. class tersebut ditulis sebelum field yang menggunakannya.

Form dan admin menampilkan label dalam menu tarik-turun dan menolak nilai lain; database itu sendiri tidak memeriksanya. movie.get_age_display() mengembalikan label untuk sebuah baris.

challenge icon

Tantangan

Mudah

Beri Book genre:

  • Di dalam Book, buat class pilihan Genre: FICTION ("fiction", "Fiction"), SCIFI ("scifi", "Science fiction"), MYSTERY ("mystery", "Mystery"), HISTORY ("history", "History").
  • Field genre dengan panjang maksimal 20 karakter, terbatas pada pilihan tersebut, dan bernilai fiction kecuali kamu memilih yang lain.

Di tab Shell, coba Book.Genre.SCIFI.label.

Coba sendiri

from django.db import models


class Book(models.Model):
    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)
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Model dan Admin

Latihan sendiri: Playground Django