Você deve se lembrar de que seus modelos estão produzindo HTML. Em HTML, um caractere de nova linha é apenas outro espaço em branco, não significa colocar o texto a seguir em uma nova linha. Existem várias maneiras de forçar novas linhas em HTML.
Você pode envolver seu texto com uma <pre>
tag para que o HTML entenda que está pré-formatado:
<pre>{{value}}</pre>
Você pode usar filtros do Django para converter suas novas linhas de texto simples em HTML. linebreaks
transforma novas linhas simples em <br>
marcas e novas linhas duplas em <p>
marcas. linebreaksbr
apenas transforma novas linhas em <br>
tags:
{{value|linebreaks}}
{{value|linebreaksbr}}
Você pode experimentá-los para ver qual você gosta mais.
Caso contrário, você pode usar a manipulação de string em sua visualização para converter seu texto simples em HTML da maneira que mais lhe convier. E se você quiser realmente avançar, pode escrever seu próprio filtro que converte da maneira que você gosta e usá-lo em todos os seus modelos.
Não tenho certeza se entendi totalmente sua pergunta, mas tente usar o filtro de quebra de linha.
fonte