About Management Commands Accepting Multi-valued Options
Django management commands can accept multi-valued options like this:
python manage.py run_steps --steps=2 --steps=3
Here's how you can define that in the management command:
from django.core.management.base import BaseCommand
class Command(BaseCommand):
SILENT, NORMAL, VERBOSE = 0, 1, 2
def add_arguments(self, parser):
parser.add_argument(
"--steps",
action="append",
help="Steps to execute (omit for all)",
choices=["step1", "step2", "step3"],
)
def handle(self, *args, **options):
self.verbosity = options.get("verbosity", self.NORMAL)
self.steps = options.get("steps") or ["step1", "step2", "step3"]
if "step1" in self.steps:
...
if "step2" in self.steps:
...
if "step3" in self.steps:
...
Tips and Tricks Programming Dev Ops Django 4.2 Django 3.2 Django 2.2 Python 3
Also by me
Django Paddle Subscriptions app
For Django-based SaaS projects.
Django GDPR Cookie Consent app
For Django websites that use cookies.