Python リストが JavaScript でレンダリングされない
-
21-09-2019 - |
質問
2つの変数、つまり2つのリストを取るJavaScriptがあります。1つは数値のリストで、もう1つはdjango/pythonからの文字列のリストです。
numbersvar = [0,1,2,3]
stringsvar = ['a','b','c']
Numbersvar は完全にレンダリングされますが、{{stringsvar}} を実行するとレンダリングされません。
解決
たぶん、を使用した方が良いでしょう json JavaScriptリストを作成するモジュール?
>>> a = ['stste', 'setset', 'serthjsetj']
>>> b = json.dumps(a)
>>> b
'["stste", "setset", "serthjsetj"]'
>>> json.loads(b)
[u'stste', u'setset', u'serthjsetj']
他のヒント
stringsvar何が含まれていますか?リスト、またはリストの文字列表現?
私はあなたがレンダリングするテンプレートに表示する方法から、リストの正しいJavaScriptの文字列表現を渡す示唆しています。 PythonとJavaScriptの配列リテラルは同じ構文を持っているので、あなたが行うことができます:
def my_view(request):
return render_template("...", stringsvar=str(the_list))
テンプレートで
<script language="javascript">
stringsvar = {{ stringsvar }};
...
</script>
それとも、これはあなたにも価値の他の種類を渡すことができるようになりますという付加的な利点を持って、JSONシリアライザを使用することができます。
from django.core import serializers
def my_view(request):
return render_template("...", stringsvar=serializers.serialize("json", the_list))
所属していません StackOverflow