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