I work with multiple projects, many of which have multiple custom management commands defined. It can be hard to remember them, and slow to pick them out of the "manage.py help" list.
This quickie command lists all of a project's custom commands (along with their help text). Writing it was easy after looking at the source of django.core.management.
Open questions include: how do you decide which app to put this command in? Should this command list itself?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
from django.core.management import find_management_module, find_commands, load_command_class from django.core.management.base import NoArgsCommand from django.conf import settings class Command(NoArgsCommand): help = "Show the list of custom management commands in this project." requires_model_validation = False def handle_noargs(self, **options): app_names = [a for a in settings.INSTALLED_APPS if not a.startswith("django.")] print "Custom management commands in this project:" for app_name in app_names: command_names = find_commands(find_management_module(app_name)) for command_name in command_names: help_text = load_command_class(app_name, command_name).help print "%s\n\t%s (%s)\n" % (command_name, help_text, app_name) if not app_names: print "None"
More like this
- Month / Year SelectDateWidget based on django SelectDateWidget by pierreben 3 weeks ago
- Python Django CRUD Example Tutorial by tuts_station 1 month, 1 week ago
- Browser-native date input field by kytta 2 months, 3 weeks ago
- Generate and render HTML Table by LLyaudet 3 months ago
- My firs Snippets by GutemaG 3 months ago