Seçenekler
Coddy'nin Django Journey'sinin Modeller ve Yönetim Paneli bölümünün bir parçası. Ders 4 / 23.
Bir tür, herhangi bir metin değil, birkaç değerden biri olmalıdır. choices seçeneği, bir numaralandırma sınıfı olarak verilen listeyle alanı sınırlar. Bir film sitesi, bir filmin kimler için olduğunu sınırlayabilir:
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)Her üyenin veritabanında saklanan bir değeri, "teen", ve insanların okuduğu bir etiketi, "13 and over", vardır. Kodda Movie.Age.TEEN yazarsın; böylece bir yazım hatası yeni bir değer oluşturmak yerine hataya yol açar. Sınıf, onu kullanan alandan önce gelir.
Formlar ve yönetici arayüzü etiketleri açılır listede gösterir ve diğer değerleri reddeder; veritabanının kendisi denetleme yapmaz. movie.get_age_display() bir satırın etiketini döndürür.
Görev
KolayBook için bir tür belirleyin:
Bookiçinde bir seçenek sınıfı olanGenre:FICTION("fiction","Fiction"),SCIFI("scifi","Science fiction"),MYSTERY("mystery","Mystery"),HISTORY("history","History").- En fazla 20 karakter alan, bu seçeneklerle sınırlı bir
genrealanı; başka bir tür seçmediğiniz sürece kurgu.
Shell sekmesinde Book.Genre.SCIFI.label ifadesini deneyin.
Kendin dene
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)
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