1
resposta

Classe de vôo [Como fazer aparecer o nome?]

Na classe de voo, o que aparece na minha aplicação é:

Classe de vôo: ECON

Ou seja, não aparece o nome "Econômica". Como fazer para aparecer o nome? Vi no código disponibilizado que está igual ao meu aqui, que no caso seria em "minha_consulta.html" o seguinte trecho:

<p>Classe de vôo: {{ form.classe_viagem.value }}</p>

1 resposta

Olá Renata, tudo bem com você?

Peço desculpas pela demora no retorno.

Quando trabalhamos com campos do tipo choices temos disponível o método get_<nome_do_campo>_display esse método será responsável por retornar de forma legível o valor presente nos campos do tipo choices.

Usando o método descrito acima será impresso o segundo valor da tupla cadastrada no arquivo passagens/models/classe_viagem.py na classe ClasseViagem. Onde temos o cadastro das opções de escolha.

class ClasseViagem(models.TextChoices):
        ECONOMICA = 'ECON', _('Econômica')
        EXECUTIVA = 'EXEC', _('Executiva')
        PRIMEIRA_CLASSE = 'PRIC', _('Primeira Classe')

Aplicando o uso do método get_classe_viagem_display para buscarmos o valor escolhido para o campo Classe do vôo, será impresso o valor presente entre os parênteses _('nome_da_classe').

Para fazermos uso desse método, será necessário apenas modificarmos o modo que apresentamos o resultado no arquivo template/minha_consulta.html. Ficando da seguinte forma.

<p>A classe de vôo: {{ form.instance.get_classe_viagem_display }}</p>

Acima temos o instance que será a referência para a classe responsável pela criação do campo do tipo choices, nesse caso instance representa a classe Passagem criada no arquivo passagens/models/passagem.py.

Realizando a mudança apresentada acima, teremos como resultado a apresentação de um texto legível por humanos.

Fico à disposição em caso de dúvidas.

Abraços e bons estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!