как отобразить переменную шаблона django как html?
то, что я хочу, похоже на переполнение стека. Пользователь может HTML форматировать свой текстовый ввод, и страница должна отображаться точно так же,
Я использую wmd.js
чтобы сохранить форматированный ввод, подумайте, что у меня есть контекстная переменная {{variable}}
со строковым значением "<p>something</p>"
. Когда я визуализирую шаблон,
{{variable}} outputs <p>something</p>
and {{variable|safe}} also output <p>something</p>
он показывает HTML-тег в виде текста на странице. Как отобразить HTML-тег в {{variable}}
но не показывает их как обычный текст.
в шаблон
<div id='thread_answer_content' >
{% for answer in question.answer_set.all %}
{{answer.answerbody|safe}}
{% endfor %}
</div>
вид
def detail(request,question_id):
q = get_object_or_404(Question,pk=question_id)
return render_to_response('CODE/detail.html',{'question':q},
context_instance = RequestContext(request)
)
вот страница администратора django вопроса, кстати, я использую sqlite3
4 ответов
использовать тег:http://docs.djangoproject.com/en/dev/ref/templates/builtins/#autoescape
{% autoescape off %}{{ variable }}{% endautoescape %}
вы можете использовать escape
чтобы сделать это, вместо safe
.
{{ variable|escape }}
для простого форматирования HTML используйте <p>{{something}}</p>
. И путь Javascript,
<script type="text/javascript">
var variable = "<p>{{something}}</p>";
document.write(variable);
</script>
если это {{something}}
сам содержит теги HTML, затем {{something|safe}}
сам должен работать, если у вас нет {% autoescape on %}
. Для дополнительной фильтрации и форматирования см. встроенные шаблонные теги и фильтры.
Я думаю, что другой подход для этого-использовать firstof
tag:
обратите внимание, что переменные, включенные в теге прежде не сбежал. Это связано с тем, что теги шаблонов не избегают их содержимого. Любой код HTML или Javascript, содержащийся в печатной переменной, будет отображаться как есть, что потенциально может привести к проблемам безопасности. Если вам нужно бежать переменные в теге прежде, вы должны сделать это явно
{% firstof variable %}