django-admin-runner¶
django-admin-runner
Run Django management commands from the admin with auto-generated forms, pluggable task runners, and a unified execution log.
@register_command
Register any management command with a decorator. Add group labels, permissions, and model attachments.
Auto-generated forms
argparse arguments become Django form fields automatically. No manual form writing needed.
Widget customisation
Override widgets per-argument, supply a custom Form class, or use decorator-level overrides.
Built-in file fields
FileOrPathField (upload or server path), FileField, and ImageField out of the box.
Pluggable runners
Django Tasks (default), Celery, django-q2, sync, or write your own for any queue backend.
Execution log
Every run stored as a CommandExecution with full audit trail and rich HTML results.
Permission control
Per-command: superuser-only, Django permission strings, or AND-combined lists.
Model attachment
Attach a direct Run button to a model.
Unfold support
Auto-detected. Uses Unfold templates and widgets when installed.
Terminal output
stdout/stderr stream into an embedded xterm.js terminal — ANSI colors and progress bars render live, delta-efficiently.
Scheduling
Cron, interval, and one-off schedules — interactive admin UI or declarative in code, materialized into your backend.
Stop commands
Graceful stop via the output heartbeat, escalating to a hard kill — shown only while the execution is running.
Quick navigation¶
- Installation — get set up in under a minute
- Quickstart — register and run your first command
- Decorator reference — all
@register_commandoptions - Runners — built-in and custom runners
- Scheduling — cron, interval, and one-off schedules
- Stopping Commands — stop running commands
- Execution context — rich output and terminal rendering
- Hooks — run code before and after command execution
- Admin themes — plain Django admin, Unfold, and the terminal view
- Examples — complete example projects