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 に答える