처음 포스터, 오랜 시간 리더. 나는 이것에 대한 답을 찾기 위해 꽤 오래 동안 보냈습니다. 그것은 내가 놓치고있는 근본적인 것을 생각하게 만듭니다.JSON을 통해 장고 데이터베이스 쿼리 세트를 하이 차트에 전달
데이터베이스 테이블에있는 데이터를 가져 와서 Highcharts 플롯에 표시하려고합니다. 소스를 검사 할 때 Django 나 클라이언트에서 오류가 발생하지 않습니다.
사용 장고 1.7 3.4 파이썬
를 views.py :
#unit/views.py
from django.http import JsonResponse
from django.shortcuts import render
from unit.analysis_funcs import ChartData
def chart_data_json(request):
data = {}
data['chart_data'] = ChartData.get_data()
return JsonResponse(data, safe = True)
def plot(request):
return render(request, 'unit/data_plot.html', {})
get_data() 함수 :
#unit/analysis_funcs.py
from unit.models import CheckValve
class ChartData(object):
def get_data():
data = {'serial_numbers': [], 'mass': []}
valves = CheckValve.objects.all()
for unit in valves:
data['serial_numbers'].append(unit.serial_number)
data['mass'].append(unit.mass)
return data
템플릿 :
<!-- templates/unit/data_plot.html -->
{% extends "base.html" %}
{% block extrahead %}
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="http://code.highcharts.com/highcharts.js"></script>
{% endblock %}
{% block rootcontainer %}
<div id="container" style="width:100%; height:400px;"></div>
{% endblock %}
{% block overwrite %}
<!-- Overwrite the base.html jQuery load and put in head for Highcharts to work -->
{% endblock %}
{% block extrajs %}
<script>
$(document).ready(function() {
var options = {
chart: {
renderTo: 'container',
type: 'line'
},
series: [{}]
};
var ChartDataURL = "{% url 'chart_data_json' %}";
$.getJSON('ChartDataURL', function(data) {
options.xAxis.categories = data['chart_data']['serial_numbers'];
options.series[0].name = 'Serial Numbers';
options.series[0].data = data['chart_data']['mass'];
var chart = new Highcharts.Chart(options);
});
});
</script>
{% endblock %}
마지막으로 URL :
from unit import views, graphs
urlpatterns = patterns('',
url(r'^chart_data_json/', views.chart_data_json, name = 'chart_data_json'),
url(r'^plot/', views.plot, name = 'plot'),
)
모든 것이 실행되는 것처럼 보이지만 Highchart 플롯은 렌더링되지 않습니다. 나는 JSON 데이터를 view.py에서 template.html로 어떻게 옮길 것인가에 대해 생각합니다. 그러나 오랫동안 그것을 꼼짝 않고 바라 보았습니다.
도움이 될 것입니다!
콘솔에 오류가 있습니까? –
@SebastianBochan 사이트를 검색 할 때 오류가 없습니다. 메인 URL과 데이터를 호출하는 URL 모두에 전형적인 200 응답을 받으십시오. – peteza33