Menu
CoddyTech

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.

challenge icon

Wyzwanie

Łatwy

Ustaw opcjonalne pola modelu Book jako opcjonalne:

  • is_read ma początkowo wartość False.
  • finished moż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

Poćwicz samodzielnie: Edytor online Django