Skip to main content

Create tables with sorting links on the headers in Django templates.

Project description

Django-table-sort

pre-commit.ci status Documentation Status codecov django-table-sort python-versions django-versions license Code style: black downloads

Create tables with sorting links on the headers in Django templates.

This is currently WIP, so many other features will come in future releases.

Installation

First, install with pip:

pip install django-table-sort

Second, add the app to your INSTALLED_APPS setting:

INSTALLED_APPS = [
    ...,
    "django_table_sort",
    ...,
]

Usage

First, add the static to your Template:

<link rel="stylesheet" href="{% static 'django_table_sort.css' %}"/>

django-sort-table uses by default Font Awesome 6 to display the icons, so you might need to add it too.

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.2/css/all.min.css" integrity="sha512-1sCRPdkRXhBV2PBLUdRb4tMg1w2YPf37qatUFeS7zlBy7jJI8Lf4VHwWfZZfpXtYSLy85pkm9GaYVYMfw5BC1A==" crossorigin="anonymous" referrerpolicy="no-referrer" />

Second, Use django-table-sort to display your tables.

In your view.py file:

class ListViewExample(ListView):
    model = Person
    template_name: str = "base.html"
    ordering_key = "o"

    def get_ordering(self) -> tuple:
        return self.request.GET.getlist(
            self.ordering_key, None
        )  # To make Django use the order

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context["table"] = TableSort(
            self.request,
            self.object_list,
            sort_key_name=self.ordering_key,
            table_css_clases="table table-light table-striped table-sm",
        )
        return context

In your template.html file:

{{ table.render }}

Result:

The table is render with 2 link, one to Toggle the sort direction and another to remove the sort.

You can filter by each field you declare as a column.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-table-sort-0.3.2.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

django_table_sort-0.3.2-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file django-table-sort-0.3.2.tar.gz.

File metadata

  • Download URL: django-table-sort-0.3.2.tar.gz
  • Upload date:
  • Size: 6.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.14 CPython/3.10.6 Linux/5.15.0-1014-azure

File hashes

Hashes for django-table-sort-0.3.2.tar.gz
Algorithm Hash digest
SHA256 ad80927d4fa75c203eb62a4488d208522d0db2775803b8054a33e1a96536c0af
MD5 5b90f0a9484f478f6185408ccdf249f5
BLAKE2b-256 bb494eb9bbcf5dfabcba85b1459c31c62d9f095574ebab5035c7586c3f0d224c

See more details on using hashes here.

File details

Details for the file django_table_sort-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: django_table_sort-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 6.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.14 CPython/3.10.6 Linux/5.15.0-1014-azure

File hashes

Hashes for django_table_sort-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e43cbde6b94a0e6b62f0687d5bb6b83441b838cb7ce1cbfcfee1739682fae41c
MD5 d9481b1c83e25ef5534f9370574ceba5
BLAKE2b-256 8c29f3167a57d1dfaa17130d525f75b0f395591b08aff863339b8c4488962254

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page