如何访问ndb查询对象客户端中的项?

时间:2012-07-02 20:53:13

标签: django google-app-engine webapp2

我正在使用appengine,django和webapp2,并发送一个查询对象客户端,以便

{{ 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 个答案:

答案 0 :(得分:1)

你无法混合客户端代码和模板代码......到javascript运行时,你的python代码已经执行了。您没有向javascript发送python对象 - 它是在生成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.