1
resposta

Ingredientes e modo de preparo em uma única linha

Criei algumas receitas com os ingrediente separados por linhas, como numa lista, e o modo de preparo organizado passo a passo em parágrafos.. mas na hora de exibir no site não há as quebras de linha. O texto (modo de preparo e ingredientes) fica todo em um único parágrafo.. e ainda por cima onde deveria haver quebra de linha as palavrasficamassimcoladas.

Como arrumamos isso?

1 resposta

Olá Paulo, tudo bem com você?

Peço desculpas pela demora em lhe responder.

Podemos realizar a formatação do texto fazendo o uso dos filtros disponibilizados pelo Django, fazemos o uso de dois filtros, sendo eles:

  • linenumbers: Será responsável por numerar as linhas.
  • linebreaks: Será responsável por criar a quebra de linhas.

Para adicionar um filtro fazermos o uso do sinal pipe (|), barra vertical, ficando com a seguinte sintaxe nosso código.

{{receita.ingredientes|linenumbers|linebreaks}}

A ordem em que os filtros são adicionados possui relevância, nesse exemplo acima, primeiramente será realizado um filtro adicionando a numeração a cada linha e logo após será realizado a quebra de linha. Lembrando que, essa quebra de linha deve estar presente no momento em que a receita é cadastrada no admin.

As mudanças devem ocorrer no arquivo receitas/template/receitas.html, no momento em que fazemos o uso de código Python ({{}}) para imprimir um resultado. Serão dois pontos de mudanças, sendo estes:

Modo de preparo

<p>{{receita.modo_preparo|linenumbers|linebreaks}}</p>

Ingredientes

<p>{{receita.ingredientes|linenumbers|linebreaks}}</p> 

Após realizar as mudanças, basta salvar o arquivo e atualizar a página.

Caso queira conhecer outros filtros disponíveis, deixo abaixo o link para a documentação do Django, a documentação está em inglês, caso tenha dificuldade com o idioma, recomendo o uso do tradutor do navegador.

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!