Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Django模型数据转换为Javascript中可用的变量_Javascript_Python_Django - Fatal编程技术网

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

将Django模型数据转换为Javascript中可用的变量,javascript,python,django,Javascript,Python,Django,我是编程新手,也是如此。我有一个关于使用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) 我正在创建一个Djan

我是编程新手,也是如此。我有一个关于使用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;
    }
for(var i=0;i<{{business_list | length}};i++){
var学派=[];
业务[0]={{business_list.i.lat};
业务[1]={{business_list.i.lng};
业务[2]={{business\u list.i.business\u name}M
业务(i)=业务;;
}

您可以将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)
然后可以进行迭代,因为查询集被转换为dict列表

你可能需要这样做

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);
    }
var-school=[];

对于(var i=0;i请尝试在javascript中使用
safe
template标记。您应该将其应用于来自HttpResponse的上下文变量。

非常感谢。我将尝试。是否“返回JsonResponse(json)”将数据传递到我的index.html模板?JsonResponse只返回json格式的数据,这是我的错误,忽略它。Fazil,我有json字符串,但无法使用,尝试使用var json_parsed=json.parse(json)解析它但显然不起作用。对此有什么想法吗?许多thankslocal变量“json”在第json=json.loads(serializers.serialize('json',business_ulist')行赋值之前引用。Thanksman。在我的模板中,我无法使用该数据。不过,如果只插入{data}在我的模板中,我看到了整个数据集。如果我试图以这种方式访问数据[0].fields.lat,我什么也看不到。很抱歉打扰您,但我快疯了,谢谢Hanks Kostas。但是在我的模板中,我无法使用这些数据。正如我对@fazil的评论,如果我只插入{data}在我的模板中,我看到了整个数据集。如果我尝试以这种方式访问数据data[0]。fields.lat,我什么也看不到。。。