אפשרויות
חלק מהיחידה מודלים וממשק הניהול במסלול ה-Django של Coddy. שיעור 4 מתוך 23.
ז'אנר צריך להיות אחד מתוך כמה ערכים, ולא טקסט כלשהו. האפשרות choices מגבילה שדה לרשימה, שמוגדרת כמחלקת מנייה. אתר סרטים יכול להגביל למי מיועד סרט:
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)לכל איבר יש את הערך שנשמר במסד הנתונים, "teen", ואת התווית שאנשים קוראים, "13 and over". בקוד כותבים Movie.Age.TEEN, כך שטעות הקלדה היא שגיאה ולא ערך חדש. המחלקה מופיעה לפני השדה שמשתמש בה.
טפסים וממשק הניהול מציגים את התוויות ברשימה נפתחת ודוחים ערכים אחרים; מסד הנתונים עצמו אינו בודק זאת. movie.get_age_display() מחזירה את התווית של שורה.
אתגר
קלהוסף ל־Book ז'אנר:
- בתוך
Book, מחלקת אפשרויות בשםGenre:FICTION("fiction","Fiction"),SCIFI("scifi","Science fiction"),MYSTERY("mystery","Mystery"),HISTORY("history","History"). - שדה בשם
genre, באורך של עד 20 תווים, מוגבל לאפשרויות האלה, וברירת המחדל היא fiction, אלא אם תבחר אפשרות אחרת.
בלשונית Shell, נסה את Book.Genre.SCIFI.label.
נסו בעצמכם
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)
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה מודלים וממשק הניהול
1המודל הראשון שלך
המודל הראשון שלךסוגי שדותתרגלו בעצמכם: Django אונליין