从模型向JavaScript发送JSON数据时出错。看起来编码导致错误,但我找到的所有示例都适用于其他人。如何正确地将模型数据从我的视图发送到JavaScript?
查看代码:
def home(request):
import json
info_obj = Info.objects.all()
json_data = serializers.serialize("json", info_obj)
return render_to_response("pique/home.html", {'json_data':json_data}, context_instance=RequestContext(request))
JavaScript代码:
var data = jQuery.parseJSON('{{json_data}}');
console.log(data);
错误Uncaught SyntaxError: Unexpected token &
:
var data = jQuery.parseJSON('[{"pk": 1, "model": "pique.eat" ...
答案 0 :(得分:14)
您必须在字符串中使用"
而不是"
。
该字符串由render_to_response
自动转义。
为避免这种情况,您必须将json_data
标记为安全。使用mark_safe
即可。
from django.utils.safestring import mark_safe
return render_to_response(
"pique/home.html",
{
'json_data':mark_safe(json_data)
},
context_instance=RequestContext(request))
答案 1 :(得分:0)
您的数据是html编码的。它应该来自带引号的所有服务器。 render_to_response
正在进行某种编码吗? json_data
在该函数之前的样子是什么?