Como usar o Django Field Choices?
Django Field Choices. De acordo com a documentação, as Opções de campo são uma sequência que consiste em iteráveis de exatamente dois itens (por exemplo, [ (A, B), (A, B) ...]) para usar como opções para algum campo. Por exemplo, considere um semestre de campo que pode ter opções como {1, 2, 3, 4, 5, 6} apenas. As opções limitam a entrada do usuário aos valores específicos especificados em models.py
. Se as opções forem fornecidas, elas serão aplicadas pela validação do modelo e o widget de formulário padrão será uma caixa de seleção com essas opções em vez do campo de texto padrão. As opções podem ser qualquer objeto de sequência - não necessariamente uma lista ou tupla.
O primeiro elemento em cada tupla é o valor real a ser definido no modelo e o segundo elemento é o nome legível.
Por exemplo,
SEMESTER_CHOICES = ( ("1", "1"), ("2", "2"), ("3", "3"), ("4", "4"), ("5", "5"), ("6", "6"), ("7", "7"), ("8", "8"), )
Vamos criar um campo de opções com o semestre anterior em nosso projeto django chamado geeksforgeeks.
from
django.db
import
models
SEMESTER_CHOICES
=
(
(
"1"
,
"1"
),
(
"2"
,
"2"
),
(
"3"
,
"3"
),
(
"4"
,
"4"
),
(
"5"
,
"5"
),
(
"6"
,
"6"
),
(
"7"
,
"7"
),
(
"8"
,
"8"
),
)
class
Student(models.Model):
semester
=
models.CharField(
max_length
=
20
,
choices
=
SEMESTER_CHOICES,
default
=
'1'
)
Vamos verificar no painel de administração como o semestre é criado.
Também é possível coletar suas opções disponíveis em grupos nomeados que podem ser usados para fins organizacionais:
MEDIA_CHOICES = [ ('Áudio', ( ('vinil', 'Vinil'), ('cd', 'CD'), ) ), ('Vídeo', ( ('vhs', 'Fita VHS'), ('dvd', 'DVD'), ) ), ('desconhecido', 'Desconhecido'), ]
O primeiro elemento em cada tupla é o nome a ser aplicado ao grupo. O segundo elemento é um iterável de 2 tuplas, com cada 2 tupla contendo um valor e um nome legível para uma opção. As opções agrupadas podem ser combinadas com opções desagrupadas em uma única lista (como a opção desconhecida neste exemplo).
Para cada campo de modelo que tem opções definidas, Django adicionará um método para recuperar o nome legível para o valor atual do campo. Veja get_FOO_display()
na documentação da API do banco de dados.
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva