Django Report Tools
Python Shell
Switch branches/tags
Nothing to show
Clone or download
Latest commit 3347705 Feb 3, 2014



Django Report Tools aims to take the pain out of putting charts, graphs and tables into your Django projects. It provides a nice class-based framework to restore a little bit of elegance to your application's complex data views.


  • Define your reports using the same syntax as Django forms and models
  • Use built-in 'renderers' to avoid the hassle of dealing with various charting technologies (currently only the Google Visualization Toolkit is supported)
  • Enter chart data in a standardised format
  • Build a simple API, allowing for the creation of chart exports or a 'save to dashboard' feature.

Release Notes - 0.2.2

  • Updated for Django 1.6 compatibility
  • Increased tox coverage

Release Notes - 0.2.1

  • Fixed a JSON encoding bug that broke Python 2.6 compatibility.
  • Added a tox.ini and test support so I can test and prevent these sorts of bug in the future.

Release Notes - 0.2

  • Updated for Django 1.5 compatibility
  • Fixed an XSS vector in the Google Charts renderer
  • Updated to the most recent GViz API

A fully-functional example report

The following example implements a report with a simple pie chart, rendered using the Google Visualization Toolkit.

from report_tools.reports import Report
from report_tools.chart_data import ChartData
from report_tools.renderers.googlecharts import GoogleChartsRenderer
from report_tools import charts

class MyReport(Report):
    renderer = GoogleChartsRenderer

    pie_chart = charts.PieChart(
        title="A nice, simple pie chart",

    def get_data_for_pie_chart(self):
        data = ChartData()

        data.add_column("Pony Type")

        data.add_row(["Blue", 20])
        data.add_row(["Pink", 20])
        data.add_row(["Magical", 1])

        return data

Read on in the documentation for a full explanation and lots more examples.


Project Home:



To install django-report-tools simply use:

$ pip install django-report-tools

Or alternatively:

$ easy_install django-report-tools