2013-08-26 109 views
3

我有一個在Google App Engine上有Jinja2的網站,所以版本是2.6。在某些時候,我循環遍歷一個列表來產生單選按鈕,並且我想默認選中第一個。 我的代碼如下:Jinja2沒有返回循環變量

 {% for publisher in publishers %} 
     <tr onclick="doNav('/spt/publisher/{{ publisher.id }}');" style="cursor: pointer;"> 
      <td>{{ publisher.name }}</td> 
      <td>{{ publisher.songs }}</td> 
      <td><input form="export_publisher_form" onclick="event.cancelBubble = true;" 
         type="radio" name="export_publisher" value="{{ publisher.id }}"{% if loop.first %} checked{% endif %}></td> 
     </tr> 
    {% endfor %} 

問題是,神社似乎並不返回任何loop.first價值,也沒有任何循環變量(我試圖與loop.index,loop.length和loop.cycle )。難道我做錯了什麼 ?

編輯:出版商的是,像這樣的列表(縮進爲清楚起見):你使用的是什麼版本的Python

[{'id': 4974053165105152L, 'name': u'BMG', 'songs': 1}, 
{'id': 5888297083600896L, 'name': u'Emi', 'songs': 2}, 
{'id': 6099953071947776L, 'name': u'Ninja Tune', 'songs': 1}, 
{'id': 4762397176758272L, 'name': u'Sony', 'songs': 0}, 
{'id': 5325347130179584L, 'name': u'Universal', 'songs': 0}, 
{'id': 4815173734891520L, 'name': u'Warner', 'songs': 0}] 
+1

嗯......看不出什麼毛病的Jinja2代碼。你能展示出版商的價值嗎? –

+1

感謝您回覆安德魯。我不知道你是否收到通知我編輯了這個問題,所以我也在回覆。 :) –

回答

1

奇怪...?當我執行此代碼時,我得到以下輸出:

{% for publisher in heater %} 
    <tr onclick="doNav('/spt/publisher/{{ publisher.id }}');" style="cursor: pointer;"> 
     <td>{{ publisher.name }}</td> 
     <td>{{ publisher.songs }}</td> 
     <td><input form="export_publisher_form" onclick="event.cancelBubble = true;" 
        type="radio" name="export_publisher" value="{{ publisher.id }}"{% if loop.index == 2 %} checked{% endif %}></td> 
    </tr> 
{% endfor %} 

我得到Emi 2檢查。你在看什麼?

我也改變了你的數據是:

data = [{'id': 4974053165105152, 'name': 'BMG', 'songs': 1}, 
       {'id': 5888297083600896, 'name': 'Emi', 'songs': 2}, 
       {'id': 6099953071947776, 'name': 'Ninja Tune', 'songs': 1}, 
       {'id': 4762397176758272, 'name': 'Sony', 'songs': 0}, 
       {'id': 5325347130179584, 'name': 'Universal', 'songs': 0}, 
       {'id': 4815173734891520, 'name': 'Warner', 'songs': 0}] 
+0

啊 - 我看你說蟒蛇2.6。我重試了該版本的Python代碼,並獲得了相同的成功結果。僅供參考:我正在使用cherrypy 3.2.4進行測試。 –

+1

我正在使用Python 2.7。 2.6是GAE支持的Jinja2版本。 –

+0

你讓Emi檢查很奇怪。它應該是第一個元素。我將設置一個新的GAE帳戶來明天進行測試,問題必須與我的應用程序相關聯,但我完全不知道如何。 –