繁体   English   中英

将Django模型数据转换为可在Javascript中使用的变量

[英]Converting Django model data to variables usable in Javascript

我是编程和SO的新手。 我有一个关于使用Django / Python开发的问题。 我正在尝试将django变量用于javascript脚本。

我的模型是这样的:

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

我正在创建将业务数据发送到模板的Django应用

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

我想将django对象列表转换为可在javascript中使用的对象列表,但我无法做到这一点...我尝试了下面的代码,但没有用。 能否请你帮忙? 谢谢

    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;
    }

您可以将queryset序列化为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)

然后,您可以进行迭代,因为queryset被转换为字典列表。

您可能需要做这样的事情,

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);
    }

尝试在JavaScript中也使用safe模板标记。 您应该将其应用于来自HttpResponse的上下文变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM