mirror of
https://github.com/django/django.git
synced 2025-11-03 05:13:23 +00:00
Fixed #23309 -- Fixed call_command to parse args correctly
This commit is contained in:
parent
7ed3d0bb61
commit
e0a98e2374
4 changed files with 57 additions and 5 deletions
28
tests/user_commands/management/commands/hal.py
Normal file
28
tests/user_commands/management/commands/hal.py
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
from django.core.management.base import BaseCommand, CommandError
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = "Useless command."
|
||||
|
||||
def add_arguments(self, parser):
|
||||
parser.add_argument('args', metavar='app_label', nargs='*',
|
||||
help='Specify the app label(s) to works on.')
|
||||
parser.add_argument('--empty', action='store_true', dest='empty', default=False,
|
||||
help="Do nothing.")
|
||||
|
||||
def handle(self, *app_labels, **options):
|
||||
app_labels = set(app_labels)
|
||||
|
||||
if options['empty']:
|
||||
self.stdout.write("Dave, I can't do that.")
|
||||
return
|
||||
|
||||
if not app_labels:
|
||||
raise CommandError("I'm sorry Dave, I'm afraid I can't do that.")
|
||||
|
||||
# raise an error if some --parameter is flowing from options to args
|
||||
for app_label in app_labels:
|
||||
if app_label.startswith('--'):
|
||||
raise CommandError("Sorry, Dave, I can't let you do that.")
|
||||
|
||||
self.stdout.write("Dave, my mind is going. I can feel it. I can feel it.")
|
||||
Loading…
Add table
Add a link
Reference in a new issue