1 2 3 4 5 6 7 8 9 10 11 12 13 14 | from django.core.management.base import BaseCommand
def command(help=None, args=''):
def _decorate(func):
_args = args
_help = help
class Command(BaseCommand):
help = _help if _help is not None else func.__doc__
args = _args
def handle(self, *args, **kwargs):
return func(*args, **kwargs)
func.func_globals['Command'] = Command
return func
return _decorate
|
More like this
- Management command to list custom management commands by pbx 2 years, 8 months ago
- Management command which helps to find temlate files by skyjur 1 year, 1 month ago
- collectmedia command: Copy or link media files from installed apps by exogen 3 years, 4 months ago
- extras.py for management commands by dnordberg 4 years, 5 months ago
- Nested commit_on_success by rfk 2 years, 11 months ago
Comments
Well, some how (and I think it can be done) the decorator can introspect the function's positional arguments and keyword arguments, and then use those for the command's arguments and options, respectively. Then the only parameter needed for the decorator usage would be the help text.
#
gmandx, interesting idea. I've done some light reading around, and it looks like the functools module has some stuff that could do this.
#