Class-based Views that integrate django-filters and django-tables2 with model formsets.
Project description
Django Filtered Model Formset Tables
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
-
FilteredTableView
- Mixes FilterView with SingleTableMixin for views that Filter tabular data.
-
FilteredModelFormsetView
- Integrates FilterView with ModelFormsetView for views that Filter the queryset used by a formset
-
ModelFormsetTableView
- Integrates ModelFormsetView with SingleTableMixin for views that render a formset in a Table.
-
FilteredModelFormsetTableView
- Integrates FilterView, ModelFormsetView, and SingleTableMixin for views that Filter the queryset used by a formset and render the formset in a Table.
Note:
Table.Column options linkify and empty_values are overridden for columns
rendered as form fields
linkifyis incompatible with a form field representation, so is disabled;- to ensure 'empty' form fields are rendered,
empty_valuesis set to () (i.e., render all values)
Quick Start
-
Install the
django-fmftpackage from PyPI$ pip install django-fmft
For other installation methods see Installation.
-
Add
'fmft'toINSTALLED_APPS:INSTALLED_APPS = [ ..., "fmft", "django_tables2", "django_filters", "extra_views", # optional ..., ]
Get Me Some of That
Check Out the Demo App
pip install -e git+https://github.com/powderflask/django-fmft.git#egg=django-fmftpython manage.py migrate demopython manage.py loaddata demo/fmft_fixture.jsonpython 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
- Semantic Versioning
$ bumpver show
Docs
Build / Deploy Automation
- invoke
$ invoke -l
- GitHub Actions (see .github/workflows)
- GitHub Webhooks (see settings/hooks)
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9ec8a09dde21b6db5e4368e8bb2317f7f3424fa8263d8f17d4a5cc4295a8b7df
|
|
| MD5 |
228fe34e4f07e0b651eddf20549248b1
|
|
| BLAKE2b-256 |
c1c843c73a19792c2b06554d9e29c39e79b5cd072cc6d7c1a25d34df4aa2a6b2
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d3dc50a476223b83041a49a253a333b4ff8e9ff20871e8c33010589d4ace19a7
|
|
| MD5 |
bbfb62285d943f910953945a4926291a
|
|
| BLAKE2b-256 |
4351c4df1ab9552744136c3245b38a235549bdda36026b23fff8212dca439eba
|