Menu
CoddyTech

Valori predefiniti e campi vuoti

Fa parte della sezione Modelli e pannello di amministrazione del percorso Django di Coddy. Lezione 3 di 23.

Salva un libro senza specificare se l'hai letto e il database rifiuta: NOT NULL constraint failed. Ogni campo è obbligatorio finché non indichi il contrario, con una di queste tre opzioni:

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 è il valore assegnato a una nuova riga quando non ne fornisci uno. null=True permette alla colonna di memorizzare NULL, che Python legge come None. blank=True permette ai moduli e all'area di amministrazione di accettare il campo vuoto.

Per un numero o una data che potresti non conoscere servono sia null=True sia blank=True. Per il testo serve solo blank=True: il testo vuoto viene memorizzato come "" e null gli darebbe due tipi di valore vuoto. TextField è testo senza limite di lunghezza, per qualcosa di lungo come una recensione.

challenge icon

Sfida

Facile

Rendi facoltativi i campi opzionali di Book:

  • is_read inizia con False.
  • finished può essere vuoto: un libro non terminato non ha una data.
  • Un nuovo campo summary: testo lungo, senza limite di lunghezza, può essere vuoto: il modo tipico di Django per il testo.

Premi Run, poi nella scheda Shell digita Book.objects.create(title="Emma", author="Jane Austen", year=1815, price="7.50") e apri la scheda Data.

Provalo tu

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()

Tutte le lezioni di Modelli e pannello di amministrazione

Esercitati da solo: Playground Django