Advanced tables for django cruds
Project description
Django Scotty
Advanced table views for Django with filters, exports, and bulk actions.
Features
- 🚀 Enhanced Table Views: Built on top of django-tables2 with additional functionality
- 🎯 Filtering: Integrated django-filters support with beautiful UI
- 📊 Export to Excel: Export table data to XLS/XLSX formats using tablib
- ⚡ Bulk Actions: Perform actions on multiple records at once
- 🎨 Modern UI: Beautiful templates using django-cotton and Bootstrap
- 🔧 Customizable: Easy to extend and customize for your needs
Installation
Install using pip:
pip install django-scotty
Or using uv:
uv pip install django-scotty
Quick Start
- Add
django_scottyto yourINSTALLED_APPS:
INSTALLED_APPS = [
...
'django_cotton',
'django_tables2',
'django_filters',
'django_scotty',
...
]
- Create a table view in your
views.py:
from django_scotty.list_views.helpers import CottonTableView
import django_tables2 as tables
from .models import YourModel
class YourModelTable(tables.Table):
class Meta:
model = YourModel
fields = ['field1', 'field2', 'field3']
class YourModelListView(CottonTableView):
model = YourModel
table_class = YourModelTable
title = 'Your Model List'
paginate_by = 25
- Add to your
urls.py:
from django.urls import path
from .views import YourModelListView
urlpatterns = [
path('your-model/', YourModelListView.as_view(), name='yourmodel-list'),
]
Advanced Features
Filtering
Add a FilterSet to enable filtering:
import django_filters
class YourModelFilter(django_filters.FilterSet):
class Meta:
model = YourModel
fields = ['field1', 'field2']
class YourModelListView(CottonTableView):
model = YourModel
table_class = YourModelTable
filterset_class = YourModelFilter
Export to Excel
Export functionality is enabled by default. Users can click the "Export to XLS" button.
Bulk Actions
Define custom actions in your view:
from django_scotty.list_views.helpers import CottonTableView, action
class YourModelListView(CottonTableView):
model = YourModel
table_class = YourModelTable
@action(short_description="Mark as processed")
def mark_processed(self, request, queryset):
queryset.update(processed=True)
return self.success_message("Records marked as processed")
Requirements
- Python >= 3.8
- Django >= 3.2
- django-cotton >= 0.9.0
- django-tables2 >= 2.4.0
- tablib[xls,xlsx] >= 3.0.0
- django-filter >= 22.1
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Credits
Built with:
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_scotty-0.1.7.tar.gz.
File metadata
- Download URL: django_scotty-0.1.7.tar.gz
- Upload date:
- Size: 12.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3bd5529d5b837572778628427e801fbffe13e071f69b68b691d7d2ed73739698
|
|
| MD5 |
70420f0703828dc0187705c316162989
|
|
| BLAKE2b-256 |
6997c87998165371e542c762c6727d7cca809e5a1551875f9dbf8615e4cc74d4
|
File details
Details for the file django_scotty-0.1.7-py3-none-any.whl.
File metadata
- Download URL: django_scotty-0.1.7-py3-none-any.whl
- Upload date:
- Size: 18.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fd565904c78c93cbdf204fe8ee1d48295fff853d00d750f25ab6885fccb4961f
|
|
| MD5 |
f909fb65a8abdc91899d927b7e4e6200
|
|
| BLAKE2b-256 |
286b3273cadd092af50fda6818b21d0699c59ebdf5e4de7bc7b34515ac810199
|