Skip to main content

Class-based Views that integrate django-filters and django-tables2 with model formsets.

Project description

Django Filtered Model Formset Tables

PyPI Version Docs Status Tests

Re-usable Class-Based Views that integrate django-filter and django-tables2 with model formsets. Render and process a user-filterable, user-sortable modelformset in a table with just a few lines of code. Rainbows and unicorns!

Features

  • Use a ModelForm / formset to define editable fields, add / delete, extra forms, etc.
  • Use a FilterSet to define filters the formset's queryset
  • Use a Table to lay out the formset, define paging, sorting, etc.
  • Render the Table with its filtered formset in just a few lines of template code

Views

Note: Table.Column options linkify and empty_values are overridden for columns rendered as form fields

  • linkify is incompatible with a form field representation, so is disabled;
  • to ensure 'empty' form fields are rendered, empty_values is set to () (i.e., render all values)

Quick Start

  1. Install the django-fmft package from PyPI

    $ pip install django-fmft
    

    For other installation methods see Installation.

  2. Add 'fmft' to INSTALLED_APPS:

    INSTALLED_APPS = [
        ...,
        "fmft",
        "django_tables2",
        "django_filters",
        "extra_views",   # optional
           ...,
    ]
    

Get Me Some of That

MIT License

Check Out the Demo App

  1. pip install -e git+https://github.com/powderflask/django-fmft.git#egg=django-fmft
  2. python manage.py migrate demo
  3. python manage.py loaddata demo/fmft_fixture.json
  4. python manage.py runserver

Acknowledgments

Special thanks to BC Hydro, Chartwell, and all Contributors

Technology Colophon

This package just glues together the amazing functionality provided by django-filter, django-tables2, and django-extra-views.

Python3, Django, HTML5, CSS3, JavaScript

For Developers

$  pip install -r reqirements_dev.txt

Tests

$ pytest

or

$ tox

Code Style / Linting

$ isort
$ black
$ flake8

Versioning

Docs

Build / Deploy Automation

Known Issues

  • hidden form fields are rendered in first form field column - can't have dynamically hidden fields, hidden on some rows while visible in others, without a little magic.

TODO

My wish list...

  • write test for case where form field is not included in table E.g. as when DELETE field not included in export table

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_fmft-0.3.3.tar.gz (18.5 kB view details)

Uploaded Source

Built Distribution

django_fmft-0.3.3-py3-none-any.whl (17.5 kB view details)

Uploaded Python 3

File details

Details for the file django_fmft-0.3.3.tar.gz.

File metadata

  • Download URL: django_fmft-0.3.3.tar.gz
  • Upload date:
  • Size: 18.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for django_fmft-0.3.3.tar.gz
Algorithm Hash digest
SHA256 9ec8a09dde21b6db5e4368e8bb2317f7f3424fa8263d8f17d4a5cc4295a8b7df
MD5 228fe34e4f07e0b651eddf20549248b1
BLAKE2b-256 c1c843c73a19792c2b06554d9e29c39e79b5cd072cc6d7c1a25d34df4aa2a6b2

See more details on using hashes here.

File details

Details for the file django_fmft-0.3.3-py3-none-any.whl.

File metadata

  • Download URL: django_fmft-0.3.3-py3-none-any.whl
  • Upload date:
  • Size: 17.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for django_fmft-0.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d3dc50a476223b83041a49a253a333b4ff8e9ff20871e8c33010589d4ace19a7
MD5 bbfb62285d943f910953945a4926291a
BLAKE2b-256 4351c4df1ab9552744136c3245b38a235549bdda36026b23fff8212dca439eba

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