Valores padrão e campos vazios
Parte da seção Models e o Admin do Journey de Django da Coddy. Lição 3 de 23.
Salve um livro sem dizer se você o leu, e o banco de dados recusa: NOT NULL constraint failed. Todos os campos são obrigatórios até que você diga o contrário, com uma destas três opções:
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 é o valor que uma nova linha recebe quando você não informa nenhum. null=True permite que a coluna armazene NULL, que o Python lê como None. blank=True permite que formulários e o admin aceitem o campo vazio.
Um número ou uma data que você talvez não saiba precisa de null=True e blank=True. Texto precisa apenas de blank=True: o texto vazio é armazenado como "", e null daria a ele dois tipos de vazio. TextField é texto sem limite de comprimento, para algo longo como uma resenha.
Desafio
FácilDeixe opcionais as partes opcionais de Book:
is_readcomeça comoFalse.finishedpode ficar vazio: um livro não concluído não tem data.- Um novo campo
summary: texto longo, sem limite de comprimento, pode ficar vazio — do jeito do Django para texto.
Pressione Run e, em seguida, na aba Shell, digite Book.objects.create(title="Emma", author="Jane Austen", year=1815, price="7.50") e abra a aba Data.
Experimente você mesmo
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()
Todas as lições de Models e o Admin
1Seu primeiro modelo
Seu primeiro modeloTipos de campoPratique por conta própria: Playground de Django