【问题标题】:Google App Engine render and Django formsGoogle App Engine 渲染和 Django 表单
【发布时间】:2012-10-15 06:08:47
【问题描述】:

我正在尝试在我的 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 时,我却得到了

&lt;p&gt;&lt;label for=&quot;id_name&quot;&gt;Name:&lt;/label&gt; &lt;input type=&quot;text&quot; name=&quot;name&quot; id=&quot;id_name&quot; /&gt;&lt;/p&gt;

这是我的渲染方法

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 %}

【问题讨论】:

    标签: google-app-engine django-forms django-templates


    【解决方案1】:

    将模板中的表单更改为:

    {% block content %}
    
        {{ form.as_p|safe }}
    
    {% endblock content %}
    

    这应该可以防止 as_p 中的 HTML 被转义。见:https://docs.djangoproject.com/en/dev/ref/templates/builtins/#safe

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-07
      • 2012-06-01
      • 2011-05-14
      • 2012-12-17
      • 2011-05-29
      • 2010-12-07
      • 2010-11-03
      • 2018-11-13
      相关资源
      最近更新 更多