我正在尝试使用模板系统在我的Google App Engine项目中使用Django表单。但是,我无法弄清楚如何正确呈现表单。从python代码调用form.as_p()时,我得到了预期的html,
<p><label for="id_name">Name:</label> <input type="text" name="name" id="id_name" /></p>
然而,当从模板调用form.as_p时,我得到了
<p><label for="id_name">Name:</label> <input type="text" name="name" id="id_name" /></p>
这是我的渲染方法
def render(self, name, **data):
"""Render a template"""
if not data:
data = {}
self.response.out.write(template.render(
os.path.join(
os.path.dirname(__file__), 'templates', name + '.html'),
data))
调用渲染方法:
form = PostForm()
self.render('toplevel', parent=user, items=user.establishments(), form=form)
最后是模板:
{% block content %}
{{ form.as_p }}
{% endblock content %}
答案 0 :(得分:1)
将模板中的表单更改为:
{% block content %}
{{ form.as_p|safe }}
{% endblock content %}
这应该可以防止as_p中的HTML被转义。请参阅:https://docs.djangoproject.com/en/dev/ref/templates/builtins/#safe