Google App Engine:显示html表单时模板无效

时间:2011-01-26 02:22:09

标签: google-app-engine

在我的python代码中我有

    the_button = '''<form action="/edit" method="get" >
                    <input type="submit" name="edit" value="Edit" />
                    </form>'''

    template_values = { 'the_button':the_button }
    path = os.path.join(os.path.dirname(__file__), 'the.html')
    self.response.out.write(template.render(path, template_values))

问题在于,当我在页面中看到它会显示按钮但不可点击时,那么当我查看html的页面源时它没有显示代码。

可能是什么问题?

谢谢!

1 个答案:

答案 0 :(得分:2)

Webapp可能是您的原始html转义 尝试添加safe过滤器,如下所示:

{{  the_button|safe }}  

来自Django documentation

  

<强>安全
     在输出之前将字符串标记为不需要进一步的HTML转义      当自动关闭时,此过滤器无效。

修改
不幸的是,Google App Engine开箱即用,运行没有该功能的Django 0.96 您有两种选择:

  1. 安装更新版本的Django(Django-NonRel
  2. 问问自己为什么需要将原始风险的html片段从控制器传递到视图 我会将该按钮移动到视图中,允许控制器使用简单的show_button布尔变量来显示它。
  3. 在控制器中:

    show_button = true
    template_values = { 'show_button':show_button }
    path = os.path.join(os.path.dirname(__file__), 'the.html')
    self.response.out.write(template.render(path, template_values))
    

    the.html

    {%if show_button  %}
        <form action="/edit" method="get" >
                        <input type="submit" name="edit" value="Edit" />
                        </form>
    {% endif %}