0

我正在使用 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 }})
}
4

1 回答 1

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.
于 2012-07-02T22:20:57.143 回答