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
Django/Python Consulting
If you have a specific Django challenge or integration you'd like to solve, I'd be happy to help. Book a free 30-minute call to discuss your project, see if we're a good fit, and explore the best approach for your needs. After the call, you'll receive a tailored cost estimate based on what we discuss.
Also by me
Django Messaging
For Django-based social platforms.
Django Paddle Subscriptions
For Django-based SaaS projects.
Django GDPR Cookie Consent
For Django websites that use cookies.