Django é nulo

Resumo : neste tutorial você aprenderá como usar o Django isnullpara verificar se um valor é NULLou não.

Introdução ao Django isnull

Usaremos os modelos Employeee Contactdo HRaplicativo para a demonstração. Os modelos Emloyeee Contactsão mapeados para as tabelas hr_employeee hr_contact:

Em bancos de dados relacionais, NULLdenota informações ausentes. Por exemplo, se você não sabe o contato de um funcionário, pode utilizar NULLpara o contato do funcionário no momento da gravação.

NULLé especial porque você não pode usar o =operador para comparar um valor com ele. Em vez disso, você usa o ISoperador.

Por exemplo, para verificar se o valor em é contact_idou NULLnão, você usa o ISoperador da seguinte forma:

contact_id IS NULLLinguagem de código:  Python  ( python )

O IS NULLretorna verdadeiro se contact_idfor NULLou falso caso contrário.

Para negar o ISoperador, você pode usá- NOTlo assim:

contact_id IS NOT NULLLinguagem de código:  Python  ( python )

Django usa isnull para verificar se um valor é NULou não:

Entity.objects.filter(field_name__isnull=True)Linguagem de código:  Python  ( python )

O filter()método retorna todas as instâncias com field_nameis NULL. Para negar o isnull, você o compara com False:

Entity.objects.filter(field_name__isnull=False)Linguagem de código:  Python  ( python )

Nesse caso, filter()retorna todas as instâncias da Entidade cujo field_namenão é NULL.

Exemplo de Django isnull

O exemplo a seguir usa o isnullpara obter funcionários que não têm contatos:

>>> Employee.objects.filter(contact_id__isnull=True)
SELECT "hr_employee"."id",
       "hr_employee"."first_name",
       "hr_employee"."last_name",
       "hr_employee"."contact_id",
       "hr_employee"."department_id"
  FROM "hr_employee"
 WHERE "hr_employee"."contact_id" IS NULLLinguagem de código:  Python  ( python )

A consulta gerada usa IS NULLo operador para comparar contact_idcom NULL.

O exemplo a seguir usa o isnullpara obter todos os funcionários que possuem contatos:

>>> Employee.objects.filter(contact_id__isnull=False) 
SELECT "hr_employee"."id",
       "hr_employee"."first_name",
       "hr_employee"."last_name",
       "hr_employee"."contact_id",
       "hr_employee"."department_id"
  FROM "hr_employee"
 WHERE "hr_employee"."contact_id" IS NOT NULLLinguagem de código:  Python  ( python )

Nesse caso, a consulta gerada usa IS NOT NULLpara comparar os valores da contact_idcoluna com NULL.

Resumo

  • Use Django isnullpara verificar se um valor é NULLou não.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *