Resumo : neste tutorial você aprenderá como usar o Django isnull
para verificar se um valor é NULL
ou não.
Introdução ao Django isnull
Usaremos os modelos Employee
e Contact
do HR
aplicativo para a demonstração. Os modelos Emloyee
e Contact
são mapeados para as tabelas hr_employee
e hr_contact
:
Em bancos de dados relacionais,
denota informações ausentes. Por exemplo, se você não sabe o contato de um funcionário, pode utilizar NULL
para o contato do funcionário no momento da gravação.NULL
NULL
é especial porque você não pode usar o =
operador para comparar um valor com ele. Em vez disso, você usa o IS
operador.
Por exemplo, para verificar se o valor em é contact_id
ou NULL
não, você usa o IS
operador da seguinte forma:
contact_id IS NULL
Linguagem de código: Python ( python )
O IS
retorna verdadeiro se NULL
contact_id
for
ou falso caso contrário.NULL
Para negar o IS
operador, você pode usá- NOT
lo assim:
contact_id IS NOT NULL
Linguagem de código: Python ( python )
Django usa isnull para verificar se um valor é NUL
ou 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_name
is 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_name
não é NULL
.
Exemplo de Django isnull
O exemplo a seguir usa o isnull
para 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 NULL
Linguagem de código: Python ( python )
A consulta gerada usa IS NULL
o operador para comparar contact_id
com NULL
.
O exemplo a seguir usa o isnull
para 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 NULL
Linguagem de código: Python ( python )
Nesse caso, a consulta gerada usa IS NOT NULL
para comparar os valores da contact_id
coluna com NULL
.
Resumo
- Use Django
isnull
para verificar se um valor éNULL
ou não.