A quick-and-dirty, and extremely simple, decorator to turn a simple function into a management command.
This still requires you to have the management directory structure, but allows you to name your primary method whatever you want, and encapsulates the basic functionality of an argument-accepting management commmand.
The function's docstring will be used for the command's help text if the
help arg is not passed to the decorator.
from myapp.utils import command @command() def my_command(): print "Hello, world"
I'm not too familiar with the intricacies of decorators and management commands, so this could probably (most likely) be improved upon, but it's a start.
Update: I've taken this a bit farther and put my work up on bitbucket: https://bitbucket.org/eternicode/django-management-decorators/src
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
- Browser-native date input field by kytta 4 weeks, 1 day ago
- Generate and render HTML Table by LLyaudet 1 month, 1 week ago
- My firs Snippets by GutemaG 1 month, 1 week ago
- FileField having auto upload_to path by junaidmgithub 2 months, 2 weeks ago
- LazyPrimaryKeyRelatedField by LLyaudet 2 months, 3 weeks ago