Fixed #10080 -- Slightly extended the fix made in r10401 by also taking command line options into account that don't have have a default set. Thanks, Claude Paroz.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@17467 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
b46d90c63a
commit
538257b4ae
|
@ -139,9 +139,12 @@ def call_command(name, *args, **options):
|
||||||
# when the script runs from the command line, but since call_command can
|
# when the script runs from the command line, but since call_command can
|
||||||
# be called programatically, we need to simulate the loading and handling
|
# be called programatically, we need to simulate the loading and handling
|
||||||
# of defaults (see #10080 for details).
|
# of defaults (see #10080 for details).
|
||||||
defaults = dict([(o.dest, o.default)
|
defaults = {}
|
||||||
for o in klass.option_list
|
for opt in klass.option_list:
|
||||||
if o.default is not NO_DEFAULT])
|
if opt.default is NO_DEFAULT:
|
||||||
|
defaults[opt.dest] = None
|
||||||
|
else:
|
||||||
|
defaults[opt.dest] = opt.default
|
||||||
defaults.update(options)
|
defaults.update(options)
|
||||||
|
|
||||||
return klass.execute(*args, **defaults)
|
return klass.execute(*args, **defaults)
|
||||||
|
|
|
@ -9,8 +9,10 @@ class Command(BaseCommand):
|
||||||
requires_model_validation = True
|
requires_model_validation = True
|
||||||
|
|
||||||
option_list =[
|
option_list =[
|
||||||
make_option("-s", "--style", default="Rock'n'Roll")
|
make_option("-s", "--style", default="Rock'n'Roll"),
|
||||||
|
make_option("-x", "--example")
|
||||||
]
|
]
|
||||||
|
|
||||||
def handle(self, *args, **options):
|
def handle(self, *args, **options):
|
||||||
|
example = options["example"]
|
||||||
self.stdout.write("I don't feel like dancing %s." % options["style"])
|
self.stdout.write("I don't feel like dancing %s." % options["style"])
|
||||||
|
|
Loading…
Reference in New Issue