I finally got my plot. I found this approach here . Thanks Harrison for publishing my method!
My new views.py based on the above approach:
def plot(request, chartID = 'chart_ID', chart_type = 'line', chart_height = 500): data = ChartData.check_valve_data() chart = {"renderTo": chartID, "type": chart_type, "height": chart_height,} title = {"text": 'Check Valve Data'} xAxis = {"title": {"text": 'Serial Number'}, "categories": data['serial numbers']} yAxis = {"title": {"text": 'Data'}} series = [ {"name": 'Mass (kg)', "data": data['mass']}, {"name": 'Pressure Drop (psid)', "data": data['pressure drop']}, {"name": 'Cracking Pressure (psid)', "data": data['cracking pressure']} ] return render(request, 'unit/data_plot.html', {'chartID': chartID, 'chart': chart, 'series': series, 'title': title, 'xAxis': xAxis, 'yAxis': yAxis})
A quick function for pulling database objects and transferring data:
class ChartData(object): def check_valve_data(): data = {'serial numbers': [], 'mass': [], 'pressure drop': [], 'cracking pressure': [], 'reseat pressure': []} valves = CheckValve.objects.all() for unit in valves: data['serial numbers'].append(unit.serial_number) data['mass'].append(unit.mass) data['cracking pressure'].append(unit.cracking_pressure) data['pressure drop'].append(unit.pressure_drop) data['reseat pressure'].append(unit.reseat_pressure) return data
The key to Harrison's method is to display a script to translate Highcharts js variables into Python template variables:
{% 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 heading %} <h1 align="center">Analysis</h1> {% endblock %} {% block content %} <div id={{ chartID|safe }} class="chart" style="height:100px; width:100%"></div> {% endblock %} {% block overwrite %} {% endblock %} {% block extrajs %} <script> var chart_id = {{ chartID|safe }} var chart = {{ chart|safe }} var title = {{ title|safe }} var xAxis = {{ xAxis|safe }} var yAxis = {{ yAxis|safe }} var series = {{ series|safe }} </script> <script> $(document).ready(function() { $(chart_id).highcharts({ chart: chart, title: title, xAxis: xAxis, yAxis: yAxis, series: series }); }); </script> {% endblock %}
Now everything works and displays correctly!