2014-01-20 88 views
3

從模型向JSON數據發送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)) 

JavaScript代碼:

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

錯誤Uncaught SyntaxError: Unexpected token &

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

除了下面的答案:看看Django大括號。在那裏,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在該功能之前看起來像什麼?

相關問題