Home
Advanced CRUD for perfectionists with deadlines. An opinionated extension of Neapolitan.
PowerCRUD respects Neapolitan’s foundations while supplying the practical UX and async tooling that most projects end up building themselves.
Project status
PowerCRUD is still evolving, but now ships with a full pytest suite (including Playwright smoke tests). Expect breaking changes while APIs settle, and pin the package if you rely on current behaviour.
Where to start
-
First view online
- Getting Started for installation and base template requirements.
- Setup & Core CRUD basics for filters, pagination, and modals.
-
Improve day-to-day editing
- Inline editing to adjust rows in place.
- Bulk editing (synchronous) for multi-record updates with validation controls.
-
Handle long-running work
- Async Manager explains locks, progress storage, and reusable helpers.
- Bulk editing (async) queues jobs through django-q2.
- Async dashboard add-on persists lifecycle data.
-
Tune styling and behaviour
- Styling & Tailwind covers framework options and safelists.
- Customisation tips shows template overrides, extra actions, and mixin hooks.
What ships in the box
- Enhanced CRUD views with property support, field exclusions, and customizable display options
- Modal-based create, edit, and delete forms with HTMX integration
- Inline row editing with HTMX-powered reactive updates and conflict detection
- Sortable tables with pagination and responsive column controls
- Reactive filtering and search with M2M logic and custom queryset handling
- Bulk edit and delete operations with atomic transactions and async processing
- Async task management with progress tracking, conflict locks, and lifecycle monitoring
- daisyUI/Tailwind styling with template flexibility and framework extension points
- Crispy forms integration and HTML5 widgets
- Management commands for template bootstrapping and asset utilities
- Comprehensive sample app and Docker development setup
Async in brief
- View reserves locks and enqueues a worker.
- Worker runs via django-q2, updates progress, and returns results.
- Completion hook clears locks, emits lifecycle events, and optionally records dashboard rows.
- Cleanup command or schedule reconciles anything stuck.
See Async architecture for details.
Reference map
- Configuration reference: config_options.md
- Complete class example: complete_example.md
- Tooling: dockerised_dev.md, mgmt_commands.md, testing.md
- Sample app overview: sample_app.md
- Planned enhancements: enhancements.md
PowerCRUD is still moving; pin releases if you rely on specific behaviour and check these guides when upgrading.