Различные строки не отображаются в контексте в Django - PullRequest
1 голос
/ 14 апреля 2020

Если у меня есть код типа

hello_worlds = 'hello Earth \n hello Mars'

context = {
          'hellos':hello_worlds
          }

return render(request, 'home.html', context)

и home. html is

{{hellos}}

Отображается как

hello Earth hello Mars

, а не

hello Earth
hello Mars

Я использую Django 2.1.5 и python 3.8, есть ли способ заставить его отображаться как второй?

Ответы [ 3 ]

1 голос
/ 14 апреля 2020

используйте фильтр по пипсам (data | type): разрывы строк одинаковые с br в html

в вашем случае: {{hellos | linebreaks}}

1 голос
/ 15 апреля 2020

Я думаю, что первые два парня уже ответили.

Вам не нужно разбивать строки в ваших представлениях, поскольку вы можете сделать это в своем шаблоне, используя фильтр шаблона "linebreaks", как они ' он сказал:

{{hellos | переводы строк}}

или

{{hellos | переводы строк}}

1 голос
/ 14 апреля 2020

Вы можете использовать шаблонный фильтр |linebreaks [Django -doc] :

{{ hellos|linebreaks }}

Это преобразует hellos

>>> Template('{{ hellos|linebreaks }}').render(Context(context))
'<p>hello Earth <br> hello Mars</p>'

или вы можете использовать шаблонный фильтр |linebreaksbr [Django -doc] , чтобы добавить только <br> s без абзацы <p>:

>>> Template('{{ hellos|linebreaksbr }}').render(Context(context))
'hello Earth <br> hello Mars'
...