2012-07-02 44 views
0

我和AppEngine上,Django和webapp2的工作,我發送一個查詢對象客戶方,使得如何訪問ndb查詢對象clientside中的項目?

{{ exercise_steps }} 

回報

Query(kind='ExStep') 

{{ exercise_steps.count }} 

回報4

我試圖將變量exercise_steps放入一些JavaScript代碼,需要遍歷javascript(而不是django)循環中的項目,但我似乎無法訪問這些項目。我試過{{exercise_steps | 0}},{{exercise_steps [0]}},{{exercise_steps.0}},但它什麼也沒有返回。我知道我能做到這一點與Django的循環,但有什麼辦法,我可以使用的東西一個JavaScript循環查詢中訪問的對象,如

for (var i = 0; i < {{exercise_steps.count}}; i++) { 
    console.log({{ exercise_steps.i.location }}) 
} 

回答

1

不能混合客戶端代碼和模板代碼.. 。在JavaScript運行的時候,你的python代碼已經被執行了。你沒有發送一個python對象給javascript - 它在HTML生成時執行。

您需要在JS中重新創建數組,或者讓ajax調用從python返回一個數組。

var steps = [ 
    {% for step in exercise_steps %} 
     {{ step.location }}{% if not forloop.last %},{% endif %} 
    {% endfor %}]; // now your python iterable is a JS array. 
相關問題