Skip to content

Instantly share code, notes, and snippets.

@shayh
Last active December 14, 2016 14:34
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save shayh/7291015 to your computer and use it in GitHub Desktop.
Save shayh/7291015 to your computer and use it in GitHub Desktop.
bootstrap3 django-tables2 based on this gist https://gist.github.com/dyve/5458209 I created a template that works wtih https://github.com/dyve/django-bootstrap3 make sure you have 'django.core.context_processors.request' in your TEMPLATE_CONTEXT_PROCESSORS
.table-container th.asc:after {
content: '\0000a0\0025b2';
}
.table-container th.desc:after {
content: '\0000a0\0025bc';
}
.pagination {
text-align: center;
}
{% load querystring from django_tables2 %}
{% load trans blocktrans from i18n %}
{% load bootstrap3 %}
{% if table.page %}
<div class="table-container">
{% endif %}
{% block table %}
<table class="table table-compact table-bordered"{% if table.attrs %} {{ table.attrs.as_html }}{% endif %}>
{% block table.thead %}
<thead>
<tr>
{% for column in table.columns %}
{% if column.orderable %}
<th {{ column.attrs.th.as_html }}><a href="{% querystring table.prefixed_order_by_field=column.order_by_alias.next %}">{{ column.header }}</a></th>
{% else %}
<th {{ column.attrs.th.as_html }}>{{ column.header }}</th>
{% endif %}
{% endfor %}
</tr>
</thead>
{% endblock table.thead %}
{% block table.tbody %}
<tbody>
{% for row in table.page.object_list|default:table.rows %} {# support pagination #}
{% block table.tbody.row %}
<tr class="{% cycle "odd" "even" %}">
{% for column, cell in row.items %}
<td {{ column.attrs.td.as_html }}>{{ cell }}</td>
{% endfor %}
</tr>
{% endblock table.tbody.row %}
{% empty %}
{% if table.empty_text %}
{% block table.tbody.empty_text %}
<tr><td colspan="{{ table.columns|length }}">{{ table.empty_text }}</td></tr>
{% endblock table.tbody.empty_text %}
{% endif %}
{% endfor %}
</tbody>
{% endblock table.tbody %}
{% block table.tfoot %}
<tfoot></tfoot>
{% endblock table.tfoot %}
</table>
{% endblock table %}
{% if table.page %}
{% block pagination %}
{% bootstrap_pagination table.page url=request.get_full_path %}
{#{ table.page|pagination }#}
{% endblock pagination %}
{% endif %}
@Tjorriemorrie
Copy link

Awesome! Thanks!

@startmat
Copy link

Great thx !!
One Improvement from my side:

extend line:
{% bootstrap_pagination table.page url=request.get_full_path %}
to:
{% bootstrap_pagination table.page url=request.get_full_path parameter_name=table.prefixed_page_field %}

Than pagination works also if you use multiple tables on one page using the prefix attribute with table.
See:
http://django-tables2.readthedocs.org/en/latest/pages/query-string-fields.html
and:
http://django-bootstrap3.readthedocs.org/en/latest/templatetags.html#bootstrap-pagination

@geomajor56
Copy link

Very nice, thanks so much.

@pt12lol
Copy link

pt12lol commented Dec 14, 2016

@startmat: the cleanest solution for a multiple tables issue. Thanks a lot.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment