9

私のビューはjsonを計算し、を出力します。json.dumps()これを辞書キーとして渡しますdata。これをテンプレートのスクリプト要素に渡そうとしていますが、レンダリング時に、ブラウザは{"nodes": [{"count":......JavaScriptで読み取れないPythonエスケープ文字列として取得します。私が必要としているのは、このようなJSエスケープ文字列として送信するためのPython{"nodes": [{"count":......です。私は試しましたが、成功str(data)しませんでした。eval(data)基本的に、文字列をコンソールに出力するかのように送信するには、Pythonが必要です。ありがとう

4

3 に答える 3

15

私がよく理解しているなら、あなたはテンプレートでjsonを使いたいと思うでしょう。これを行うには、たとえばこのように、エスケープを無効にする必要があります。

{% autoescape off %}
var x={{json_var}}
{% endautoescape %}
于 2012-07-19T20:04:26.103 に答える
12

使用する代わりに注意してください

{% autoescape off %}
    {{ my_json }}
{% endautoescape %}

あなたは単にフィルターを使うことができます:

{{ my_json|safe }}
于 2012-07-19T21:06:20.763 に答える
1

これは私のために働きます:

return HttpResponse(json.dumps({'foo' : 'bar'}, ensure_ascii=False),
    mimetype='application/json')
于 2012-07-19T19:58:25.773 に答える