错误:未捕获的SyntaxError:意外的令牌&

时间:2014-01-20 09:35:07

标签: javascript python django json serialization

从模型向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" ... 

2 个答案:

答案 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在该函数之前的样子是什么?