2

このような整数などのプリミティブ型を渡すことができましたが、作成した Django モデルなど、より複雑なオブジェクトを渡したいと考えています。これを行う正しい方法は何ですか?

4

2 に答える 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 に答える