【发布时间】:2012-12-11 08:15:36
【问题描述】:
我想要的是堆栈溢出。用户可以 HTML 格式化他们的文本输入,并且页面应该以完全相同的方式呈现,
我使用wmd.js 来存储格式化的输入,假设我有一个上下文变量{{variable}} 和字符串值"<p>something</p>"。当我渲染模板时,
{{variable}} outputs <p>something</p>
and {{variable|safe}} also output <p>something</p>
它将html标签显示为页面中的文本。如何在{{variable}} 中呈现 HTML 标记,但不将它们显示为纯文本。
模板
<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
【问题讨论】:
-
something是什么?是上下文变量吗? -
如果查看渲染页面的源码,看到
&lt;p%gt;something&lt;/&gt;还是<p>something</p>? -
源显示
something
-
answer.answerbody究竟在数据库中包含什么?为了安全起见,它可能是双双引号或可以包含由wmd.js添加的转义字符。这样,它可能会破坏safe过滤器。
标签: django string django-templates render html