2013-09-10 2 views
2

У меня есть строка, которая должна отображаться в html-файле. Определенные слова (помеченные как «spc») в строке должны отображаться на желтом фоне и более крупном шрифте.django render_to_response как отправлять специальные символы

Я пытался отправить строку (называемую tdoc) в html-файл, используя метод render_to_response. Я заменил тег 'spc' в строке тегом div. Предположим, что после замены часть строки равна we would seldom be prepared to <div id="spcl">examine</div> every. Мой Джанго код выглядит render_to_response('a.html',{'taggeddoc':tdoc})

В моей CSS я следующий код

#spcl { 
background-color: #FFFF00; 
font-size:15px; 
} 

Итак, я должен видеть слово изучить жирным шрифтом и желтым фоном, но я не вижу. Когда я просматривал источник визуализированного html, он имеет следующую подстроку We would seldom be prepared to &lt;div id=&quot;spcl&quot;&gt;examine&lt;/div&gt; every вместо исходной строки.

Как я могу сделать слово «исследовать» и аналогичные слова в нужном виде?

ответ

5

Использование mark_safe для предотвращения HTML побег:

from django.utils.safestring import mark_safe 

... 

render_to_response('a.html', {'taggeddoc': mark_safe(tdoc)}) 

Или использовать safe фильтр в шаблоне:

{{ taggeddoc|safe }} 

Пример:

>>> from django.utils.safestring import mark_safe 
>>> from django.template import Template, Context 

# without mark_safe, safe 
>>> print(Template('{{ taggeddoc }}').render(Context({'taggeddoc': '<div>hello</div>'}))) 
&lt;div&gt;hello&lt;/div&gt; 

# mark_safe 
>>> print(Template('{{ taggeddoc }}').render(Context({'taggeddoc': mark_safe('<div>hello</div>')}))) 
<div>hello</div> 

# safe filter 
>>> print(Template('{{ taggeddoc|safe }}').render(Context({'taggeddoc': '<div>hello</div>'}))) 
<div>hello</div> 
+0

Отлично, не мог бы написал лучше себя , Я предполагаю, что могу! :П –

Смежные вопросы