Menu
CoddyTech

ערכי ברירת מחדל ושדות ריקים

חלק מהיחידה מודלים וממשק הניהול במסלול ה-Django של Coddy. שיעור 3 מתוך 23.

שומרים ספר בלי לציין אם קראת אותו, ומסד הנתונים מסרב: NOT NULL constraint failed. כל שדה הוא חובה, עד שמציינים אחרת, ויש שלוש אפשרויות:

has_subtitles = models.BooleanField(default=True)
rating = models.DecimalField(max_digits=3, decimal_places=1, null=True, blank=True)
tagline = models.CharField(max_length=200, blank=True)

default הוא הערך שמקבלת שורה חדשה כשלא מציינים ערך. null=True מאפשר לעמודה לאחסן NULL, ש-Python קורא כ-None. blank=True מאפשר לטפסים ולממשק הניהול לקבל את השדה כשהוא ריק.

מספר או תאריך שאולי אינך יודע צריכים גם null=True וגם blank=True. עבור טקסט צריך רק blank=True: טקסט ריק מאוחסן בתור "", ו-null היה נותן לו שני סוגים של ערכים ריקים. TextField הוא שדה טקסט ללא מגבלת אורך, עבור משהו ארוך כמו ביקורת.

challenge icon

אתגר

קל

הפוך את החלקים האופציונליים של Book לאופציונליים:

  • is_read מתחיל בתור False.
  • finished יכול להיות ריק: לספר שלא הסתיים אין תאריך.
  • שדה חדש summary: טקסט ארוך, ללא הגבלת אורך, יכול להיות ריק — הדרך של Django לטקסט.

לחץ על Run, ואז בכרטיסייה Shell הקלד Book.objects.create(title="Emma", author="Jane Austen", year=1815, price="7.50") ופתח את כרטיסיית Data.

נסו בעצמכם

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()
    finished = models.DateField()

כל השיעורים ביחידה מודלים וממשק הניהול

תרגלו בעצמכם: Django אונליין