2013-04-29 35 views
6

不工作我有一个模板(test.html中)如下:评论中的Jinja2

{% extends 'base.html' %} 
{% from "_formhelpers.html" import render_field %} 

{% block content %} 

<div class="container"> 
    <div class="row"> 
     <div class="span6 offset3"> 
      <form class="form-horizontal" action="/create_user/" method="post"> 
       {{ form.csrf_token }} 
       <dl> 
        {{ render_field(form.name) }} 
        {{ render_field(form.members) }} 
        <!--<div class="control-group"> 
         <label class="control-label"> 
          {{ form.task.label }} 
         </label> 
         <div class='controls'> 
          {{ form.task}} 

          {% if form.task.errors %} 
          <ul class="text-error"> 
           {% for error in form.task.errors %} 
            <li>{{ error }}</li> 
           {% endfor %} 
          </ul> 
          {% endif %} 
         </div> 
        </div>--> 
       </dl> 

      </form> 
     </div> 
    </div> 
</div> 

{% endblock %} 

当使用瓶的render_template渲染这个模板( “test.html中”,形式=形式)。我得到以下错误“UndefinedError:'tickapp.forms.TeamForm对象'没有任何属性'任务'”。 正如你所看到的,我已经在模板(整体)中注释了'form.task',并且在模型和表单中也没有这样的字段。

我不知道为什么jinja2正在考虑评论html内容。我信任评论(!),并在这个问题上花了几个小时。最后,删除了所有评论,并开始工作。任何在jinja2工作的人都面临这个问题?你知道它为什么会发生吗?

回答

14

基本上,jinja2只关心寻找评估自己的块,而不是HTML的结构。如果你想完全排除你的模板的一部分,你可以使用jinja2的comment syntax

{# This is a comment now. 
    <div class="control-group"> 
     ... 
    </div> 
#} 
+1

谢谢。我开始使用jinja2评论。我在Django模板中没有发现任何这样的问题,我认为jinja2应该允许html风格的评论而不是他们自己的评论风格。 – rajpy 2013-05-02 05:01:33

+1

在一年之后辍学...我不同意,@rajpy。我发现这个问题,同时谷歌搜索添加评论到我的jinja2源的方式,而没有实际发布HTML中的这些评论(出于安全原因)。如果jinja2只知道并处理自己的语法,那么您可以获得最大的灵活性。 – WolfRevokCats 2014-07-21 20:07:08