FAQ¶
Some frequently requested questions/examples. All examples assume you import django-tables2 like this:
import django_tables2 as tables
How should I fix error messages about the request context processor?¶
The error message looks something like this:
Tag {% querystring %} requires django.template.context_processors.request to be
in the template configuration in settings.TEMPLATES[]OPTIONS.context_processors)
in order for the included template tags to function correctly.
which should be pretty clear, but here is an example template configuration anyway:
TEMPLATES = [
{
"BACKEND": "django.template.backends.django.DjangoTemplates",
"DIRS": ["templates"],
"APP_DIRS": True,
"OPTIONS": {
"context_processors": [
"django.contrib.auth.context_processors.auth",
"django.template.context_processors.request",
"django.template.context_processors.static",
],
}
}
]
How to create a row counter?¶
You can use itertools.counter
to add row count to a table. Note that in a
paginated table, every page’s counter will start at zero:
class CountryTable(tables.Table):
counter = tables.TemplateColumn("{{ row_counter }}")
How can I use with Jinja2 template?¶
In Jinja2 templates, the {% render_table %}
tag is not available, but you can still use django-tables2 like this:
{{ table.as_html(request) }}
where request
need to be passed from view, or from context processors (which is supported by django-jinja).