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.
Tantangan
MudahBeri Book genre:
- Di dalam
Book, buat class pilihanGenre:FICTION("fiction","Fiction"),SCIFI("scifi","Science fiction"),MYSTERY("mystery","Mystery"),HISTORY("history","History"). - Field
genredengan 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)
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Model dan Admin
1Model Pertamamu
Model PertamamuJenis Field2Membuat query dengan ORM
Membuat BarisAll dan GetFilter dan LookupMenghitung BarisMengurutkan BarisMemperbarui dan MenghapusLatihan sendiri: Playground Django