配列をテンプレートに渡し、その後JavaScriptを介して使用したいと思います。
私のviews.pyには:
arry1 = ['Str',500,20]
return render_to_response('test.html', {'array1': arry1})
そして私のテンプレートでは:
var array1 = {{ array1 }};
しかし、私がウェブサイトにアクセスすると、次のように出力されます:
var array1 = ['Str',500,20];
何を変更する必要がありますか?
{{ array1|safe }}
を使用してみて、違いがあるかどうかを確認してください。私はこれをテストしていないので、これが正しくない場合はあまり投票しないようにしてください...
前述のように、|safe
filter so Djangoは配列をサニタイズせず、そのままにします。
別のオプション、そしておそらく長期的にはより良い方法は、simplejson
モジュール(Djangoに含まれています)を使用してPythonリストをJSONオブジェクトにフォーマットすることですJavaScriptに戻ることができます。配列と同じように、JSONオブジェクトをループできます。
from Django.utils import simplejson
list = [1,2,3,'String1']
json_list = simplejson.dumps(list)
render_to_response(template_name, {'json_list': json_list})
そしてあなたのJavascriptでは、{{ json_list }}
Djangoの場合:
from Django.utils import simplejson
json_list = simplejson.dumps(YOUR_LIST)
コンテキストで「json_list」をパス
JS内:
var YOUR_JS_LIST = {{YOUR_LIST|safe}};
Djangoコアシリアライザーによって実行できます。実行する必要があるのは、jsonでデータをシリアル化し、それをテンプレートに渡すことだけです。
data = serializers.serialize("json", <list>)
return render(request, 'view.html', {'data':data})
テンプレートで、このリストをJavaScript変数に保存します。
var list = {{data|safe}}