Django не отображает символ новой строки при отрисовке текста из базы данных


Я использую Django для разработки, извлекая некоторый текст, содержащий символ новой строки из базы данных. Однако, когда я визуализирую его в шаблон с помощью тега шаблона, он не показывает символ новой строки.

в чем проблема?

2 67

2 ответа:

вы должны помнить, что ваши шаблоны производят HTML. В HTML символ новой строки - это просто еще один пробел, это не означает, что следующий текст помещается в новую строку. Есть несколько способов заставить новые строки в HTML.

вы можете обернуть ваш текст <pre> тег, чтобы HTML понял, что он предварительно отформатирован:

<pre>{{value}}</pre>

вы можете использовать фильтры Django для преобразования простых текстовых новых строк в HTML. linebreaks превращает одиночные новые строки в <br> теги и двойные переводы строк в <p> теги. linebreaksbr просто превращает новые строки в <br> теги:

{{value|linebreaks}}
{{value|linebreaksbr}}

вы можете экспериментировать с ними, чтобы увидеть, что вам больше нравится.

в противном случае вы можете использовать манипуляцию строками в своем представлении, чтобы преобразовать свой обычный текст в HTML таким образом, который вам больше подходит. И если вы хотите получить действительно продвинутый, вы можете написать свой собственный фильтр, который преобразует так, как вам нравится, и использовать его во всех ваших шаблонах.

Не уверен, что я полностью понимаю ваш вопрос,но попробуйте использовать фильтр linebreaks.

{{ value|linebreaks }}