Menu
CoddyTech

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, sınırlı sayıdaki değerlerden biri olmalıdır. choices seçeneği, bir numaralandırma sınıfı olarak verilen bir 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önetim arayüzü etiketleri açılır listede gösterir ve diğer değerleri reddeder; veritabanının kendisi kontrol etmez. movie.get_age_display() bir satırın etiketini döndürür.

challenge icon

Görev

Kolay

Book için bir tür belirle. Book sınıfının en üstüne, alanların üzerine bir seçenek sınıfı olan Genre ekle:

  • FICTION: "fiction", "Fiction"
  • SCIFI: "scifi", "Science fiction"
  • MYSTERY: "mystery", "Mystery"
  • HISTORY: "history", "History"

Ardından en fazla 20 karakterlik, bu seçeneklerle sınırlandırılmış ve başka bir seçenek belirlemediğin sürece kurgu türünde olacak bir genre alanı ekle.

Shell sekmesinde Book.Genre.SCIFI.label yaz: ekrana 'Science fiction' yazdırır.

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)
quiz iconKendini test et

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