2017-05-21 11 views
2

私はプログラミングに慣れています。私はDjango/Pythonを使って開発することについて質問があります。 javascriptスクリプトにdjango変数を使用しようとしています。DjangoのモデルデータをJavascriptで使用できる変数に変換する

私のモデルは、このようなものです:私はにDjangoのオブジェクトのリストを変換したいテンプレート

def index(request): 
    business_list = Business.objects.all() 
    context = {'business_list': business_list} 
    return render(request, 'kitemap/index.html', context) 

に業務データを送信Djangoのアプリを作成してい

class Business(models.Model): 
    business_name = models.CharField(max_length=200) 
    lat = models.FloatField(default=0) 
    lng = models.FloatField(default=0) 

javascriptで使用できるオブジェクトのリストですが、私はそうすることはできません...私は以下のコードを試しましたが、うまくいきませんでした。助けてもらえますか?クエリセットはdictsのリストに変換され、ので、おかげで

for (var i = 0; i < {{ business_list|length }}; i++) { 

     var school = []; 

     business[0] = {{ business_list.i.lat }}; 
     business[1] = {{ business_list.i.lng }}; 
     business[2] = {{ business_list.i.business_name }}M 

     businesses[i] = business; 
    } 

答えて

0

あなたはJSON形式へのクエリセットをシリアル化でき、

from django.core import serializers 
from django.http import JsonResponse 
import json 

business = Business.objects.all() 
data = json.loads(serializers.serialize("json", business)) 
#return JsonResponse(json) 
context = dict(data=data) 
return render(request, 'kitemap/index.html', context) 

は、その後、あなたは、反復処理を行うことができます。あなたはこのような何かをする必要があるかもしれません

var school = []; 
for (var i=0;i<data.length;i++) { 
    var business = {}; 

    business['business_name'] = json[i].fields.business_name; 
    business['lat'] = data[i].fields.lat; 
    business['lng'] = data[i].fields.lng; 
    school.push(business); 
    } 
+0

ありがとうございます。私は試してみるつもりです。 「return JsonResponse(json)」はデータをindex.htmlテンプレートに渡しますか? –

+0

またはそれをコンテキストに追加してコードを更新する – zaidfazil

+0

JsonResponseはjson形式のデータを返します。これは私の間違いですが、無視してください。 – zaidfazil

0

はあなたのJavaScriptでsafeテンプレートタグを使用しても試してみてください。 HttpResponseから来るコンテキスト変数にそれを適用する必要があります。

+0

ありがとうKostas。しかし私のテンプレートでは、私はそのデータを使用することはできません。私が@ fazilにコメントしたように、テンプレートに{{data}}しか挿入しないと、データセット全体が表示されます。私がこのようにデータにアクセスしようとすると、_data [0] .fields.lat_私は何も見ません... –

関連する問題