Management command to list custom management commands

 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

  1. Management command which helps to find temlate files by skyjur 2 years, 5 months ago
  2. extras.py for management commands by dnordberg 5 years, 10 months ago
  3. Testserver: --noinput option, sending a signal by mpasternacki 3 years ago
  4. Custom management command to list recent admin actions by pbx 3 years, 11 months ago
  5. CustomQueryManager by zvoase 4 years, 11 months ago

Comments

andybak (on June 11, 2009):

You should suggest including this with Django Extensions. That seems like an ideal home for it.

#

jezdez (on June 11, 2009):

Very cool, I second andybak's suggestion. If you fork django-extensions on Github and send us a pull request I can add it right away. Oh, there is one thing, the find_management_module call in line 14 will raise an ImportError on 1.1.

#

(Forgotten your password?)