このような整数などのプリミティブ型を渡すことができましたが、作成した Django モデルなど、より複雑なオブジェクトを渡したいと考えています。これを行う正しい方法は何ですか?
質問する
7714 次
2 に答える
3
私はパーティーに少し遅れていることを知っていますが、私自身の仕事でこの質問に出くわしました.
これは私のために働いたコードです。
これは私の views.py ファイルにあります。
from django.shortcuts import render
from django.http import HttpResponse
from .models import Model
#This is the django module which allows the Django object to become JSON
from django.core import serializers
# Create your views here.
def posts_home(request):
json_data = serializers.serialize("json",Model.objects.all())
context = {
"json" : json_data,
}
return render(request, "HTMLPage.html",context)
次に、html ファイルのデータにアクセスすると、次のようになります。
<script type = 'text/javascript'>
var data = {{json|safe}}
data[0]["fields"].ATTRIBUTE
</script>
data は JSON オブジェクトのリストなので、最初のオブジェクトにアクセスしているので、それが data[0] です。各 JSON オブジェクトには、「pk」、「model」、および「field」の 3 つのプロパティがあります。「fields」属性は、データベースのフィールドです。この情報はここにあります: https://docs.djangoproject.com/es/1.9/topics/serialization/#serialization-formats-json
于 2016-03-03T19:54:35.613 に答える
0
特に Django モデル インスタンスの場合、それらを JSON にシリアル化し、シリアル化された値をテンプレート コンテキストで使用できます。
そこから、次のことを簡単に実行できます。
var myObject = eval('(' + '{{ serialized_model_instance }}' + ')');
また
var myObject = JSON.parse('{{ serialized_model_instance }}');
JSON-jsを使用している場合(こちらの方が安全です)。
一般的な Python オブジェクトについては、クラス JSON をシリアライズ可能にする方法を参照してください。
于 2013-05-24T18:09:10.170 に答える