2

私はpython-Djangoリストを持っています:

list_a = ['user_a', 'user_b']

次に、次のコードを使用してテンプレートにレンダリングします。

extra_context = {
    'a': list_a
}
return direct_to_template(request, 'mytemplate.html', extra_context)

私のテンプレートでは、 list_aDjango-list を Js-listに渡す次の Java スクリプト コードを記述しました。

var user = [{% for i in user_list %}{{ i }}{% if forloop.last %}{%else%},{%endif%}{% endfor %}];

しかし、テンプレートを開くと。次のエラーが表示されます(Inspect要素で確認):

Uncaught ReferenceError : user_a is not defined

userを使用してjavascriptにある変数を印刷しようとしましたInspect Element。正しい値を出力します。

var user = [user_a, user_b]

なぜそれが起こっているのか理解できません:(

4

2 に答える 2

1

私は間違いを見つけたと思います:

Update `var user = [{% for i in user_list %}{{ i }}{% if forloop.last %}{%else%},{%endif%}{% endfor %}];

var user = [{% for i in user_list %}"{{ i }}"{% if forloop.last %}{%else%},{%endif%}{% endfor %}];`

私に正しい解決策を与えています。

于 2012-07-07T23:43:56.930 に答える
0

テンプレートでは、次を使用できます

var user = {{user_list|safe}};

このテンプレートコードを使用して、Pythonリストは次のように定義されます

user_list = ['te"s\'t1', 'test2'];

javascriptソースを表示すると次の結果が得られます

var user = ['te"s\'t1', 'test2'];

あなたの元の解決策が与えるのに対して

var user = ["te"s't1","test2"];

どちらを使用するかは、ユーザー名で何をしようとしているのかによって異なります。テンプレートで「safe」を使用するかどうかに関係なく、テンプレートのforおよびifステートメントは少し過労のようです。

于 2012-07-08T00:03:29.893 に答える