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