2013-04-29 68 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