Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Django implementantion for Query By Example (QBE)
JavaScript Python CSS
tree: d60c6ee78e

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.


Django Query by Example (QBE)

synopsis: Admin tool in order to get custom reports.

The objective of django-qbe is provide a assited and interactive way of making complex queries with no technical knowledge (or minimal) to get custom reports from the objects of Django models.

Based on QBE proposal from IBM®, django-qbe is intended to remove the limitations of Django QuerySets objects and to use the whole expresive power of the subjacent SQL.


Using the Python Package Index (PyPI) and easy_install script:

$ easy_install django_qbe

Or through pip:

$ pip install django_qbe

But you also can download the django_qbe directory using git:

$ git clone git://
$ cp -r qbe/django_qbe /path/to/your/project

Adding to the project settings:

    # [...] django builtins applications
    # [...] Any other application

And adding the urlconf in your project

# qbe
url(r'^qbe/', include('django_qbe.urls')),

Add the context processor django.core.context_processors.static:

    # [...] django context processors
    # [...] Any other context processors

See the Django documentation on static files for details.

That's all. Then you can access to http://host:port/qbe However, you can add a link from your admin page changing the admin index template fo your AdminSite:

class AdminSite(admin.AdminSite):
    index_template = "qbe_index.html"

Or adding in your custom admin index template the next javascript:

<script type="text/javascript" src="{% url qbe_js %}"></script>

Saved queries

If you optionally want to store queries in your database, feel free to install the also included app django_qbe.savedqueries:

    # [...] django builtins applications
    # [...] Any other application

Then run the syncdb or optionally South's migrate management command to create the savedqueries_saved_query table.

After that there will be a new option to save a query in a model instance and an admin interface to browse the saved queries, or direclty from the command line using the command qbe_export:

$ python help qbe_export
$ python qbe_export <query_hash>
$ python qbe_export <query_hash> --output test.csv
$ python qbe_export <query_hash> --output test.xls --format xls
$ python qbe_export <query_hash> --output test.xls --format xls --db-alias default


The next lines show de available settings and its default values.

Enable autocompletion tool (work in progress, not enabled yet):


Enable an Exhibit faceted navigation for results (not yet implemented):


Admin module name to add admin urls in results:

QBE_ADMIN = "admin"

Set your own admin site if it's different to usual

QBE_ADMIN_SITE ="admin.admin_site"

Function to control to users with access to QBE:

QBE_ACCESS_FOR = lambda user: user.is_staff

Path to QBE formats export file, in order to add custom export formats:

QBE_FORMATS_EXPORT = "qbe_formats"
Something went wrong with that request. Please try again.