Skip to main content

Library for creating HTML listing / table / data grid

Project description

Django app for building HTML listings / tables, it includes many features :

  • Any iterable, Django QuerySet or model can be used.

  • Most listings can be configured into a template file without touching a python file

  • A class-based ListingView is provided if you want to code a listing at python side

  • It as an Ajax mode to save requests to the server

  • Uses JQuery if ajax is activated

  • Customized for Bootstrap by default, but can be easily customized in many way (templates, icons, etc…)

  • You can select columns to display, columns title, default sorting etc..

  • Pagination is highly customizable (buttons to display, goto page, ellipsis, icons et labels)

  • Rows can be <div> instead of <tr>, so it is possible to format data in many ways

  • A lot of column types are provided, they are automatically created when a QuerySet or a model is provided

  • Columns are class-bases and one can create custom ones

  • Columns manage One-to-many, Many-to-many and foreign relations

  • Provides aggregation columns : sum, avg, min, max values

  • Provides page-level and global aggregation : sum, avg, min, max values displayed at listing last row

  • Provides columns to make a link to the object, a custom link, checkbox, select box, text input…

  • Provides “action column” that comes with many actions : show, edit, delete, move up, move down…

  • is able to manage multiple variations to present data in multiple way at the same place (text only listing, text+image listing, image only listing for example)

  • Uses Django translation framework : one can translate the listing as needed

  • Toolbars can be added at the top and/or at the bottom to make actions

  • Built-in toolbar action are : sorting, select a listing variation, number of rows per page, export data. They are customizable.

  • Toolbar items are class-based : one can create a custom one easily

  • django-listing can automatically create a filter form (aka search form)

  • Listing rows can be selectable in order to apply some actions

  • Listings can be editable for mass updates

  • django-listing can automatically create a form for inserting data to database

  • One can upload files/images into a listing, it uses DropzoneJS (Work in progress)

  • ListingView can manage itself database inserting, editing, deleting, filtering, uploads and actions : no need to develop any code for that.

  • django-listing comes with hundreds of icons as a scalable font

  • django-listing is faster than django-table2


A demo is included in source code, you will need poetry to install python environment:

curl -sSL | python3 -

To install the python envionment, go to django-listing source code root directory, then:

cd showcase
poetry install

Check you are in showcase/ directory, then start the Django from poetry environment:

poetry run python runserver 8123

A sqlite database is already included, you do not have to make any migration, just open your brower at http://localhost:8123


Django-listing is licensed under the GPLv3 license for all open source applications. A commercial license is required for all commercial applications or non-open applications

See LICENSE.rst file for more informations.


Please, read the doc (Work in progress)


0.5.9 (2023-09-26)

  • Better focus when using Select2 widget

0.5.8 (2023-09-22)

  • Strip HTML tags on data exports

0.5.7 (2023-09-21)

  • Fix exception management for Django 4

  • Add add_one_day option on DateFilter

0.5.5 (2023-09-07)

  • Fix unexpected SQL query with ListingVariations

0.5.4 (2023-09-06)

  • Data Export works with active filters and ajax=True

0.5.3 (2023-08-23)

  • Add filter_queryset_method filter attribute

0.5.2 (2023-08-08)

  • Update fr translations

0.5.1 (2023-07-06)

  • Add links in ManyColumn if get_absolute_url() exists on related objects

0.5.0 (2023-07-05)

  • Add __url_func parameter for edit/delete/view action buttons

0.0.28 (2023-06-27)

  • Add AutocompleteMultipleForeignKeyFilter

0.0.27 (2023-06-26)

  • Add ForeignKeyFilter and AutocompleteForeignKeyFilter

0.0.26 (2023-06-21)

  • Added edit and delete action buttons

  • Fixed action button “see details” modal

0.0.24 (2023-06-20)

  • Improved CSS for small device

  • Auto-detect many-to-many model fields if present in select_columns

0.0.23 (2023-06-19)

  • Fixed choices widgets

0.0.22 (2023-06-19)

  • Improved radio and checkbox in filter form

0.0.21 (2023-06-15)

  • Fixed ModelColumns

0.0.20 (2023-05-19)

  • Added LineNumberColumn()

0.0.18 (2023-05-05)

  • Use scss to generate css files

0.0.17 (2023-04-26)

  • Added showcase with many demo pages see showcase/README.rst

0.0.14 (2022-10-24)

  • Fixed bad form closing

  • Fixed ListingVariation with Ajax

0.0.12 (2022-07-04)

  • Added django-like filter syntax for sequences

0.0.11 (2022-06-02)

  • Added JsonDateTimeColumn class

0.0.10 (2022-05-17)

  • Added support for python 3.10

0.0.9 (2021-11-09)

  • Added possibility to create custom action button linked with listing method

0.0.7 (2020-07-14)

  • First running version

0.0.1 (2018-02-03)

  • Skeleton commit

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-listing-0.5.9.tar.gz (701.9 kB view hashes)

Uploaded source

Built Distribution

django_listing-0.5.9-py2.py3-none-any.whl (762.8 kB view hashes)

Uploaded py2 py3

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