Getting Started¶
This guide will help you get up and running with Django Commands Suite quickly.
Quick Overview¶
Django Commands Suite provides both command-line and web-based interfaces for executing management commands. All command executions are automatically logged for audit and debugging purposes.
Discover Available Commands¶
View all available DCS commands:
python manage.py dcs_help
This command displays:
All built-in DCS commands
Custom commands you’ve created
Brief descriptions of each command
Usage examples
Basic Command Structure¶
All DCS commands follow Django’s standard management command structure but include additional features:
Automatic Logging: Every command execution is logged with timestamp, user, arguments, and output
Error Handling: Comprehensive error reporting and logging
Progress Feedback: Styled output with success, warning, and error indicators
Web Terminal Support: Commands can be executed via browser interface
Your First Commands¶
Let’s start with some basic commands:
Create a Quick Superuser¶
python manage.py quick_superuser
This will interactively create a Django superuser with minimal prompts.
Backup Your Database¶
python manage.py backup_db
This creates a backup of your database in the default backup location.
Generate Test Data¶
python manage.py dummy_data --model auth.User --count 10
This generates 10 test user records with realistic data.
Web Terminal Access¶
After configuring URLs (see Installation), access the web terminal at:
http://your-domain.com/dcs/terminal/
The web terminal provides:
Interactive command execution
Real-time output display
Using the Web Terminal¶
Navigate to
/dcs/terminal/in your browserLog in with your Django user account
Type commands in the terminal interface
View real-time output and results
Example commands in web terminal:
quick_superuser
backup_db --db=sqlite
dummy_data --model blog.Post --count 5
Command Logging¶
All command executions are automatically logged. You can view logs in several ways:
Django Admin Interface¶
Go to Django Admin
Navigate to “Django Commands Suite” section
Click “Command logs”
Filter by command, date, status
Programmatic Access¶
from django_commands_suite.models import CommandLog
# Error command executions
recent = CommandLog.objects.filter(
status="error"
)
# View command details
for log in recent:
print(f"{log.name}: {log.status}")
Rub Command in views¶
Sometimes you may want to execute Django management commands directly from a view
(for example, creating a backup from the dashboard).
With django-commands-suite, you can easily achieve this while keeping your views secure.
In this example, we define a decorator to ensure that only superusers can access the view.
Then, inside the view, we call run_command to trigger a management command.
from functools import wraps
from django.contrib.auth.decorators import login_required
from django.shortcuts import redirect
def is_superuser_admin(view_func):
@wraps(view_func)
@login_required
def _wrapped_view(request, *args, **kwargs):
if request.user.is_superuser:
return view_func(request, *args, **kwargs)
return redirect("main")
return _wrapped_view
from django.shortcuts import render
from django.contrib import messages
from django_commands_suite.utils import run_command
from .decorators import is_superuser_admin
@is_superuser_admin
def backup_db_view(request):
if request.method == "POST":
type_db = request.POST.get("type_db")
output = run_command("backup_db", db=type_db)
messages.success(request, f"Backup completed: {output}")
return render(request, "core/Dash/backup.html")
Example form in
backup.htmlcould look like:
<form method="post">
{% csrf_token %}
<select name="type_db">
<option value="sqlite">SQLite</option>
<option value="postgres">Postgres</option>
</select>
<button type="submit">Run Backup</button>
</form>