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ą przeczytano, a baza danych odmówi: NOT NULL constraint failed. Każde pole jest wymagane, dopóki nie określisz inaczej. Masz trzy opcje:
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ść, którą otrzymuje nowy wiersz, gdy nie podasz żadnej. 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órej możesz nie znać, wymaga zarówno null=True, jak i blank=True. Tekst wymaga tylko blank=True: pusty tekst jest przechowywany jako "", a null oznaczałoby dwa rodzaje pustej wartości. TextField to tekst bez limitu długości, używany na przykład do długiej recenzji.
Wyzwanie
ŁatwyUstaw opcjonalne pola modelu Book jako opcjonalne:
is_readma początkowo wartośćFalse.finishedmoże być puste: niedokończona książka nie ma daty.- Nowe pole
summary: długi tekst bez limitu długości, może być puste — tak w Django przechowuje się tekst.
Naciśnij Run, a następnie w karcie Shell wpisz Book.objects.create(title="Emma", author="Jane Austen", year=1815, price="7.50") i otwórz kartę Data.
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