Я использую Django для разработки, извлекая текст, содержащий символ новой строки, из базы данных. Однако, когда я отображаю его в шаблоне с помощью тега шаблона, он не отображает символ новой строки.
В чем проблема?
Я использую Django для разработки, извлекая текст, содержащий символ новой строки, из базы данных. Однако, когда я отображаю его в шаблоне с помощью тега шаблона, он не отображает символ новой строки.
В чем проблема?
Вы должны помнить, что ваши шаблоны создают HTML. В HTML символ новой строки — это просто еще один пробел, он не означает, что следующий текст помещается на новую строку. Есть несколько способов принудительно ввести новые строки в HTML.
Вы можете обернуть свой текст тегом <pre>
, чтобы HTML понял, что он предварительно отформатирован:
<pre>{{value}}</pre>
Вы можете использовать фильтры Django для преобразования строк новой строки обычного текста в HTML. linebreaks
превращает одиночные символы новой строки в теги <br>
, а двойные символы новой строки — в теги <p>
. linebreaksbr
просто превращает новые строки в теги <br>
:
{{value|linebreaks}}
{{value|linebreaksbr}}
Вы можете поэкспериментировать с ними, чтобы увидеть, что вам больше нравится.
В противном случае вы можете использовать манипуляции со строками в своем представлении, чтобы преобразовать обычный текст в HTML так, как вам больше подходит. И если вы хотите стать действительно продвинутым, вы можете написать свой собственный фильтр, который конвертирует так, как вам нравится, и использовать его во всех ваших шаблонах.
Не уверен, что полностью понимаю ваш вопрос, но попробуйте использовать фильтр разрывов строк.
{{ value|linebreaks }}