ערכי ברירת מחדל ושדות ריקים
חלק מהיחידה מודלים וממשק הניהול במסלול ה-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 הוא שדה טקסט ללא מגבלת אורך, עבור משהו ארוך כמו ביקורת.
אתגר
קלהפוך את החלקים האופציונליים של 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()
כל השיעורים ביחידה מודלים וממשק הניהול
1המודל הראשון שלך
המודל הראשון שלךסוגי שדותתרגלו בעצמכם: Django אונליין