[英]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.