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.
Défi
FacileRends facultatifs les champs facultatifs de Book :
is_readprend la valeurFalseau départ.finishedpeut ê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
1Votre premier modèle
Votre premier modèleTypes de champs3Des pages issues de la base de données
Une liste issue de la base de donnéesUne page pour chaque livreEntraînez-vous par vous-même : Playground Django