私のビューからいくつかの変数(約10)が必要なjavascript関数があります。ページが読み込まれると、再び変数を呼び出す必要はありません。私は、以下のようなコンテキストdictを使用してそれらを与えることができますが、おそらくより良いことが可能です。javascript関数にdjangoモデルを渡す方法
マイmodels.py
:
class Mymodel(models.Model):
my_field1 = #
my_field2 = #
...
my_field10 = #
マイviews.py
:
def myview(request):
context_dict={}
context_dict['myfield1'] = Mymodel.objects.get(id=1).myfield1
context_dict['myfield2'] = Mymodel.objects.get(id=1).myfield2
context_dict['myfield10'] = Mymodel.objects.get(id=1).myfield10
マイtemplate.html
:
...
<script>
<!--
window.onpageshow = function() {
my_function('{{ myfield1 }}', '{{ myfield2 }}', ..., '{{ myfield10 }}');
};
-->
</script>
...
マイjavascript.js
:
function my_function(myfield1, myfield2, ..., myfield10) {
//code
}
これらの変数はモデルのフィールドなので、モデルの定数を渡すだけです。どうやってやるの?私template.html
それは私がそれに取り組んでいくつかの時間だと私はserialize
を使うべきだと思うが、私はどのように理解していない...
:
...
<script>
<!--
window.onpageshow = function() {
my_function(serializers.serialize("json", {{ mymodelistance }}));
};
-->
</script>
...
モデルのフィールドにアクセスするには、事前
'serializers.serialize'がDjのですangoコード。あなたはDjangoビューでそれを呼び出す必要があります。 –
あなたは少なくとも15年間スクリプトに保護コメントタグを入れる必要はありません。 –