Wartości domyślne i puste pola
Część sekcji Modele i panel administracyjny ścieżki Django w Coddy. Lekcja 3 z 23.
Zapisz książkę, nie podając, czy ją przeczytałeś, a baza danych odmówi: NOT NULL constraint failed. Każde pole jest wymagane, dopóki nie określisz inaczej, a do wyboru masz jedną z trzech opcji:
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 to wartość przypisywana do nowego wiersza, jeśli jej nie podasz. null=True pozwala kolumnie przechowywać NULL, które Python odczytuje jako None. blank=True pozwala formularzom i panelowi administracyjnemu akceptować puste pole.
Liczba lub data, których możesz nie znać, wymagają zarówno null=True, jak i blank=True. Tekst wymaga tylko blank=True: pusty tekst jest przechowywany jako "", a null dawałoby mu dwa rodzaje pustej wartości. TextField to tekst bez limitu długości, przydatny do czegoś długiego, na przykład recenzji.
Wyzwanie
ŁatwyUstaw opcjonalne pola modelu Book jako opcjonalne:
is_readma na początku wartośćFalse.finishedmoże być puste: niedokończona książka nie ma daty.- Dodaj pole
summaryna długi tekst bez limitu długości; może pozostać puste i być przechowywane jako pusty tekst, a nieNULL.
Naciśnij Run, a następnie wpisz na karcie Shell Book.objects.create(title="Emma", author="Jane Austen", year=1815, price="7.50"): zostanie wyświetlony wynik <Book: Book object (1)>, a nie błąd.
Spróbuj swoich sił
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()
Wszystkie lekcje w sekcji Modele i panel administracyjny
1Twój pierwszy model
Twój pierwszy modelTypy pólPoćwicz samodzielnie: Edytor online Django