Displaying graphs using Django-graphos - django 1.6

The following guide ( https://github.com/agiliq/django-graphos ) and this stackoverflow post ( Displaying graphs using Django- graphos ) I cannot get any data to publish in my template.

models.py

class MonthlyWeatherByCity(models.Model): month = models.IntegerField() boston_temp = models.DecimalField(max_digits=5, decimal_places=1) houston_temp = models.DecimalField(max_digits=5, decimal_places=1) class Meta: verbose_name_plural = "Monthly Weather By Cities" def __unicode__(self): return unicode(self.month) 

views.py

 from graphos.sources.model import ModelDataSource from graphos.renderers import flot from portal.models import MonthlyWeatherByCity def graph_test(request): queryset = MonthlyWeatherByCity.objects.all() data_source = ModelDataSource(queryset, fields=['boston_temp', 'houston_temp']) chart = flot.LineChart(data_source, options={'title': "Website", 'xaxis': {'mode': "categories"}}) return render_to_response('portal/index.html', {'chart': chart}) 

index.html - nothing is displayed for the chart.

 {% extends 'portal/base.html' %} {% load static %} {% block head %} <!-- Needed for graphos --> <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.0/jquery.js"></script> <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/flot/0.8.2/jquery.flot.min.js"></script> <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/flot/0.8.2/jquery.flot.categories.min.js"></script> <script src="http://code.highcharts.com/highcharts.js" type="text/javascript"></script> {% endblock %} {% block body_block %} <div class="hero-unit"> <h1>Attack Control Center</h1> {% if user.is_authenticated %} <h3>Welcome back {{ user.username }}!</h3> {% endif %} </div> <div class="row-fluid"> <div class="span6"> <h2>Charts</h2> {{ chart.as_html }} </div> </div> {% endblock %} 

./manage.py shell

When I run a copy of everything in the shell and - define request = "test" - and run print graph_test (request)

 <div id="ZGScakAPkH" style="width:800px;height:400px;"></div> <script type="text/javascript"> $(function () { $.plot( $("#ZGScakAPkH"), , {"series": {"lines": {"show": "true"}}, "legend": {"position": "ne"}, "xaxis": {"mode": "categories"}, "title": "Website"} ); }); </script> </div> 

This will be set for {{chart.as_html}}. I am not sure why this is not being imported into my template.

+6
source share
1 answer

You do not see where render_to_response comes render_to_response . I suspect that the function may be part of the problem.

Remember that the render_to_response function render_to_response deprecated in favor of the render function , which explicitly processes the request object.

 import django.shortcuts from graphos.sources.model import ModelDataSource import graphos.renderers from portal.models import MonthlyWeatherByCity def graph_test(request): queryset = MonthlyWeatherByCity.objects.all() data_source = ModelDataSource(queryset, fields=[ 'boston_temp', 'houston_temp']) chart = graphos.renderers.flot.LineChart(data_source, options={โ€ฆ}) return django.shortcuts.render( request, template_name='portal/index.html', context={'chart': chart}) 

Also keep in mind that class-based views are recommended as more flexible.

0
source

All Articles