Artigos de Tecnologia e Negócios > Programação

Django: Diferença entre null e blank

Guilherme Lima
Guilherme Lima

A maneira típica de aplicativos Django interagirem com dados é através do models Django. Por exemplo, quando queremos permitir NULL em um determinado campo no banco de dados, utilizamos null=True. Já quando queremos que um campo de um formulário não seja obrigatório, utilizamos o blank=True.

Entendo o uso do null e o uso do blank

Por padrão, todos os campos do modelo Django recebem uma restrição NOT NULL no nível do banco de dados.

Para permitir que os campos do modelo Django suportem valores NULL no nível do banco de dados, declaramos a opção de campo null = True. Por exemplo:

Assim como a descrição do código, blank=True, permitimos que um determinado campo de um formulário fique em branco. Também é possível o oposto disso, com blank=False, reforçando que o determinado campo no formulário não fique em branco.

Utilizando o null e o blank ao mesmo tempo

A combinação dos dois é possível, quando queremos que um campo fique em branco no seu formulário e também permitir null no banco de dados.

Porém, como demonstrado no código abaixo, estas duas opções não fazem sentido lógico para usar:

null=True, blank=False

Se o campo não pode ficar em branco em um formulário, não existe a necessidade de permitir o null no banco de dados.

Exemplos de código

models.CharField(blank=True) 

Neste exemplo, o blank é armazenado como ''.

models.CharField(null=True)

NULL verdadeiro, mas nunca será definido como null no banco de dados. Vale lembrar que os tipos CHAR e TEXT nunca são salvos como NULL pelo Django, então null = True é desnecessário.

Casos especiais - DateTimeField

models.DateTimeField(blank=True)

Caso em branco, um erro de IntegrityError será gerado.

models.DateTimeField(null=True)

Apesar de null verdadeiro, deve ser preenchido em um formulário. Para ler a documentação oficial do Django, clique neste link.

Artigos de Tecnologia e Negócios > Programação

Cursos profissionais de Programação é na Alura, comece agora!

  • 1222 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

Premium

  • 1222 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$75
à vista R$900
Matricule-se

Premium Plus

  • 1222 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$100
à vista R$1.200
Matricule-se

Max

  • 1222 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$120
à vista R$1.440
Matricule-se
Procurando planos para empresas?

Acesso completo por 1 ano

Estude 24h/dia onde e quando quiser

Novos cursos todas as semanas