Skip to content

Home

Advanced CRUD for perfectionists with deadlines. An opinionated Django package for shipping production-grade CRUD screens with filtering, bulk operations, inline editing, and async workflows.

PowerCRUD extends Neapolitan’s view layer with the practical infrastructure needed for real operational interfaces.

Where to start

  1. First view online

  2. Improve day-to-day editing

    • Inline editing to adjust rows in place.
    • Forms for generated vs custom forms, contextual display fields, disabled inputs, and parent/child dropdown queryset scoping.
    • Bulk editing (synchronous) for multi-record updates with validation controls.
    • Persistence Hooks for moving validated writes into app services without scattering save logic.
  3. Handle long-running work

  4. Tune styling and behaviour

    • Styling & Tailwind covers framework options and safelists.
    • Customisation tips shows template overrides, extra actions, and mixin hooks.
    • PowerCRUD Concepts puts the setup guides in perspective and explains the mental model behind surfaces, field intent, actions, presentation, selection, bulk work, and async work.
    • Structured API explains when to use PowerField, PowerAction, and PowerButton for repeated field and action config.
    • Advanced Guides collects deeper implementation walkthroughs for trickier extension patterns, including the optional saved favourites add-on.
    • PowerCRUD Recipes shows Base Configuration API patterns you can adapt.

Two API styles

PowerCRUD's Base Configuration API uses class attributes, hooks, lists, and dictionaries directly. The Structured Declaration API uses PowerField, PowerAction, and PowerButton to group repeated intent into reusable declaration objects. Both styles use the same runtime behavior.

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

  1. View reserves locks and enqueues a worker.
  2. Worker runs via django-q2, updates progress, and returns results.
  3. Completion hook clears locks, emits lifecycle events, and optionally records dashboard rows.
  4. Cleanup command or schedule reconciles anything stuck.

See Async architecture for details.

Reference map