Как использовать перенос строки в Django шаблонах - PullRequest
1 голос
/ 19 апреля 2020

Привет, я новичок в python Django. Я хочу новую строку в указанных c местах, поэтому я попытался

def abc(request):
    text = "This is\n a good example"
    return render(request, 'test.html', {'text' : text})

In HTML part

Hello {{ text|linebreaks }}

И это прекрасно работает с выводом

Здравствуйте. Это

хороший пример

Вот мой вопрос. Я храню около 400 - 800 слов в моей базе данных, которая содержит примерно 4-5 абзацев. Я хочу новую строку здесь.

Итак, я храню данные типа «Это хороший пример» в моей базе данных.

И просто вызываю их в шаблоне django (Html сторона)

но он печатает Привет Это хороший пример

Здесь почему не работает разрыв строки?

Мой HTML истинный код

{% for essay in eassays %}
{{ essay.description|linebreaks }}
{% endfor %}

Я сменил имя. Также я загружаю 100 таких данных. Любое возможное решение или другие логи c!

Спасибо!

1 Ответ

0 голосов
/ 19 апреля 2020

Итак, я храню данные типа «Это хороший пример» в моей базе данных.

Вы, вероятно, сохранили '\\n' в базе данных, поэтому backsla sh, сопровождаемый n. Не символ новой строки '\n' [wiki] . Обратите внимание, что если вы напишите \n в элементе формы, то он будет экранирован и, таким образом, сохранен соответствующим образом.

Может быть лучше использовать <textarea> в элементах формы, чтобы позволить пользователям использовать новые строки (нажав Enter ).

Вы можете попытаться исправить повреждение, подставив строки, с помощью:

from django.db.models import Replace, Value

Essay.objects.update(
    description=Replace('description', Value('\\n'), Value('\n'))
)

и, таким образом, обновите свой база данных такая, что '\\n' теперь заменяется на '\n'.

...