Menu
CoddyTech

Valeurs par défaut et champs vides

Fait partie de la section Modèles et interface d’administration du Journey Django de Coddy. Leçon 3 sur 23.

Enregistrez un livre sans indiquer si vous l’avez lu, et la base de données refuse : NOT NULL constraint failed. Chaque champ est obligatoire jusqu’à ce que vous indiquiez le contraire, avec l’une des trois options suivantes :

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 est la valeur attribuée à une nouvelle ligne lorsque vous n’en fournissez aucune. null=True permet à la colonne de stocker NULL, que Python lit comme None. blank=True permet aux formulaires et à l’interface d’administration d’accepter que le champ soit vide.

Un nombre ou une date que vous ne connaissez peut-être pas nécessite à la fois null=True et blank=True. Le texte nécessite uniquement blank=True : le texte vide est stocké sous la forme "", et null lui donnerait deux sortes de valeurs vides. TextField est un champ de texte sans limite de longueur, adapté à un contenu long comme une critique.

challenge icon

Défi

Facile

Rends facultatifs les champs facultatifs de Book :

  • is_read prend la valeur False au départ.
  • finished peut être vide : un livre non terminé n’a pas de date.
  • Un nouveau champ summary : texte long, sans limite de longueur, qui peut être vide — la manière Django de gérer le texte.

Appuie sur Run, puis dans l’onglet Shell, saisis Book.objects.create(title="Emma", author="Jane Austen", year=1815, price="7.50") et ouvre l’onglet Data.

Essayez vous-même

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

Toutes les leçons de Modèles et interface d’administration

Entraînez-vous par vous-même : Playground Django