2014-01-20 5 views
3

JSON 데이터를 모델에서 JavaScript로 보낼 때 오류가 발생합니다. 인코딩이 오류를 일으키는 것 같지만 내가 찾은 모든 예는 다른 사람들에게 유용합니다. 내 뷰에서 자바 스크립트로 모델 데이터를 제대로 보내려면 어떻게해야합니까?오류 : 캐치되지 않은 SyntaxError : 예기치 않은 토큰 &

보기 코드 :

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

자바 스크립트 코드 :

var data = jQuery.parseJSON('{{json_data}}'); 
console.log(data); 

오류 Uncaught SyntaxError: Unexpected token & :

var data = jQuery.parseJSON('[{"pk": 1, "model": "pique.eat" ... 
+0

아래 답변에 대한 추가 정보 : Django Braces를 살펴보십시오. 저기, json보기는 이미 구현되었습니다 http://django-braces.readthedocs.org/en/latest/other.html#jsonrequestresponsemixin – ProfHase85

+0

@ ProfHase85 링크를 주셔서 감사합니다. 나는 한번 살펴 보겠다. – dnelson

답변

13

당신은 문자열에 " 대신 "를 사용해야합니다.

문자열이 자동으로 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)) 
+0

감사! 나는 비슷한 문제를 겪었고 이것이 내 문제를 해결하는 데 도움이되었다. – naiveDeveloper

+0

감사합니다 사람 .. 나도 도와 줬어 :) –

0

귀하의 데이터는 HTML 코드입니다. 따옴표와 함께 서버에서 가져와야합니다. render_to_response이 일종의 인코딩을하고 있습니까? 그 기능 이전에 json_data은 어떻게 생겼습니까?

관련 문제