Componente reutilizable para generar datatables en Django con soporte para htmx y Bootstrap
Project description
django datatable builder
Reusable component to generate dynamic datatables in Django projects, with Bootstrap support and customizable row actions.
🚀 Features
- Automatically generate HTML tables from Django QuerySets
- Supports pagination, ordering, and search
- Bootstrap-compatible out of the box
- Custom row-level actions (edit, delete, etc.)
- Easy integration into existing Django apps
📦 Installation
pip install django-datatable-builder
🛠️ Basic Usage
1.Add to INSTALLED_APPS:
INSTALLED_APPS = [
...
'django_datatable_builder',
]
2.Create a table class in your view:
from django_datatable_builder import DataTable
def datatable_view(request):
devices = [
{"id": 1, "name": "Router", "status": "Active"},
{"id": 2, "name": "Switch", "status": "Inactive"},
]
datatable_config = {
"data": devices,
"columns": ["Name", "Status"],
"hidden": ["id"],
"order": [[0, "asc"]],
"table_id": "devices_table",
"column_search": True,
"button_dropdown": True,
"button_url": {
"Show_demo_1": {"link": {"url": "demo:datatable_view",}},
"Show_demo_2": {"modal": {"url": "demo:datatable_view","params":"devices_id": "id"}}
},
"button_inline": {
"Show_demo_3": {"link": {"url": "demo:datatable_view", "params": {"devices_id": "id"}}, "class": "btn btn-success float-end"},
},
}
return render(request, "demo.html", {"datatable": DataTable(request, datatable_config)})
3.Render the table in your template:
{{ datatable|safe }}
📚 Documentation
DataTable Parameters
These are the main configuration options used to initialize and render a dynamic datatable.
| Parameter | Description |
|---|---|
data |
A Django QuerySet or a list of dictionaries. This is the source of the table content. |
columns |
A list of column names. Order must match the order of fields in data. |
hidden |
A list of field names to hide from the table. Useful for keeping some values available in HTML without displaying them. |
order |
Default ordering of the table. Format: [[column_index, "asc" or "desc"]] — e.g., [[0, "asc"]]. |
table_id |
The HTML id attribute of the table. Required for JavaScript initialization. |
column_search |
A list of field names that should support column-specific search. |
button_dropdown |
Set to true or false depending on whether you want to show a dropdown with action buttons per row. |
button_urls |
Used with button_dropdown. Defines one or more buttons with types like "link" or "modal". Supports optional class, and params. See example below. |
button_inline |
Used for inline buttons (outside dropdowns). Structure is similar to button_urls. Useful if you want more flexibility with custom buttons. |
button_urls (used with dropdown buttons)
button_urls = {
"Edit": {
"modal": {
"url": "/edit/",
"params": {
"id": "id" # Uses the 'id' from each row in `data`
}
"class": "btn btn-sm btn-primary",
}
},
"View": {
"link": {
"url": "/view/",
}
"class": "btn btn-sm btn-secondary"
}
}
button_inline (buttons directly rendered in table row)
button_inline = {
"Delete": {
"modal": {
"url": "/delete/",
"params": {
"id": "id"
}
}
}
}
🤝 Contributing
Contributions are welcome! Feel free to open an issue or submit a pull request.
📄 License
This project is licensed under the MIT License. See the LICENSE file for details.
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_datatable_builder-0.1.2.tar.gz.
File metadata
- Download URL: django_datatable_builder-0.1.2.tar.gz
- Upload date:
- Size: 1.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5e19b2907a47c9861c44406350d52c7174dff59d76a692627d9566c441e506dd
|
|
| MD5 |
42aeb4d648588afbbec05e8974a735e3
|
|
| BLAKE2b-256 |
90192b3f9e5293cc7d76203537368047034e8728fa50a85b25db1458adbf6a5d
|
File details
Details for the file django_datatable_builder-0.1.2-py3-none-any.whl.
File metadata
- Download URL: django_datatable_builder-0.1.2-py3-none-any.whl
- Upload date:
- Size: 1.9 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f2af0b74e00b7255ecb60cd8d18e82ee4bc3fe8efad0b0182622b551bdb85ba
|
|
| MD5 |
0e1d4005d6ec6eef1e7900f7824b5a9f
|
|
| BLAKE2b-256 |
9dbd228416a33489fcc4e520672493a9b1f787546a2e5fe0e62bc45167f1c31a
|