2014-10-30 3 views
0

mysql 쿼리 결과를 내 장고 템플릿의 컨텍스트에서 Javascript 변수로 보내려고합니다. jquery와 jquery UI가 필요한 pivot.js https://github.com/nicolaskruchten/pivottable을 사용하고 있습니다. 장고보기에서 MySQL 쿼리 결과를 Django의 Javascript/Jquery에 전달

:

cursor.execute(query) 
data = dictfetchall(cursor) 
json_data = json.dumps(data, cls=DateTimeEncoder) 
context['pivot_data'] = json_data 

이 작동 내가 자바 스크립트 콘솔에서 데이터를 볼 수 있어요하지만 어떤 이유로 제대로 포맷되지 않았습니다. 내 장고 템플릿에서

:

{% load staticfiles %} 
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js"></script> 
<script type='text/javascript' src="{% static "js/pivot.js" %}"></script> 
<script type='text/javascript'> 
    var pivotData = '{{ pivot_data }}'; 
    $("#output").pivotUI(
     pivotData, 
     { 
      rows: ["XXX"], 
      cols: ["YYY"] 
     } 
     ); 
</script> 

답변

2

(당신이 인용 JSON 개체의) 문자열을 될 것입니다 다음

var pivotData = '{{ pivot_data }}'; 

당신은 할 수 있습니다 :

var pivotData = {{ pivot_data }}; 

하지만 JSON 데이터를 평가하는 것과 비슷하지만 (특수 문자에 대해서는 특정 오류가 발생할 수 있으므로 documented here).

더 나은 방법은 다음과 같습니다

var pivotData = JSON.parse('{{ pivot_data }}'); 
+0

감사합니다! 그것은 그 문제를 해결했습니다. 나는 결국 사용했다 : var pivotData = JSON.parse ('{{pivot_data | escapejs}}'); – user3453012

관련 문제