3

コードがPythonからjavaScriptによって取得されるときに小さな問題が発生します。スクリプトにユニコード値が表示され、ブラウザーで開発者コンソールでエラーが発生します。

archive.htmlページ内のスクリプト-

<script>
    var results = {{myposts}};
    console.log(results);
</script>

私のPythonコード-

def archive(request):
    test = ["a","b","c"]
    t = loader.get_template("archive.html")
    c = Context({'myposts' : test})
    return HttpResponse(t.render(c))

試しc = Context({'myposts' : simplejson.dumps(test)})ましたが、問題が発生しました。私のブラウザは私とarrorを与えますUncaughtSyntaxError:予期しないトークン&と私のコンソールはユニコード値で私の配列を表示します[&#39;a&#39;, &#39;b&#39;, &#39;c&#39;]

どうすればそれを次のように見せることができますか-["a","b","c"]

PythonコードまたはJavaScriptで何を変更しますか

事前に助けてくれてありがとう

4

2 に答える 2

2

出力時にHTMLエスケープされているようです。これを行うとどうなりますか?:

var results = {{ myposts|safe }};

(注意して使用してください。データの送信元によっては、エスケープを実行することをお勧めします。)

于 2012-08-23T11:07:54.410 に答える
1

テンプレートでこれを試してください:

<script>
    var results = {{ myposts|escapejs }};
    console.log(results);
</script>

編集:

そして、ビューで:

from django.utils import simplejson

def archive(request):
    test = ["a","b","c"]
    t = loader.get_template("archive.html")
    c = Context(simplejson.dumps({'myposts' : test}))
    return HttpResponse(t.render(c))
于 2012-08-23T10:40:19.163 に答える