Делаем текст жирным с помощью Django - PullRequest
1 голос
/ 25 июля 2010

Мне нужно отправить текст, выделенный жирным шрифтом между обычным текстом, и отправить его в шаблон из представления.Я делаю это:

Я сохраняю строку, подобную этой TextPlaintext , в переменную и возвращаю ее в шаблон.Теги "" не интерпретируются.

Как сделать текст выделенным жирным шрифтом в представлении django?

Ответы [ 3 ]

6 голосов
/ 25 июля 2010

Django автоматически экранирует строковые значения в шаблонах для повышения безопасности.

Если вы знаете, что значение содержит HTML, и ему доверяют , вы можете отключить экранирование:

{{my_trusted_html|safe}}
2 голосов
/ 25 июля 2010

Делать текст жирным шрифтом не следует в представлении.Действительно, представление не должно заботиться о форматировании (что является ролью шаблонов).Однако вы можете добавить дополнительную переменную в контекст рендеринга и, в зависимости от ее значения, сделать текст жирным или нет в шаблоне.

Например:

В представлении:

#...
is_important = True if something else False
extra_context.update({'is_important': is_important})
#...

В шаблоне:

...
{% if is_important %}<bold>{{ text_to_render }}</bold>{% else %}{{ text_to_render }}{% endif %}
...

Но в более широком смысле , решение, является ли текст полужирным или нет, даже не форматирует, скорее стилизация ине должно быть сделано в шаблоне (поэтому вы не должны использовать разметку <<em> bold> ).Поэтому я бы предложил:

...
<span {% if is_important %}class="is-important"{% endif %}>
{{ text_to_render }}
</span>
...

И таблицу стилей:

.is-important{
    font-weight: bold;
}
1 голос
/ 25 июля 2010

Вы можете использовать тег autoescape в шаблоне django.

Кроме того, если вы напишите свой собственный фильтр, вы можете контролировать, экранирован он или нет .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...