只需意识到您可以轻松地覆盖命令,就像使用具有相同名称的命令制作应用程序一样。
因此,我创建了一个应用程序,并创建了一个与runserver相同名称的文件,然后扩展了runserver基类以在运行之前添加新功能。
例如,我想在runserver启动之前运行$ $ watch watch命令,并使其在runserver执行期间一直运行。
"""Start $compass watch, command when you do $python manage.py runserverfile: main/management/commands/runserver.pyAdd ´main´ app to the last of the installed apps"""from optparse import make_optionimport osimport subprocessfrom django.core.management.base import baseCommand, CommandErrorfrom django.core.management.commands.runserver import baseRunserverCommandfrom django.conf import settingsclass Command(baseRunserverCommand): option_list = baseRunserverCommand.option_list + ( make_option('--adminmedia', dest='admin_media_path', default='', help='Specifies the directory from which to serve admin media.'), make_option('--watch', dest='compass_project_path', default=settings.MEDIA_ROOT, help='Specifies the project directory for compass.'), ) def inner_run(self, *args, **options): self.compass_project_path = options.get('compass_project_path', settings.MEDIA_ROOT) self.stdout.write("Starting the compass watch command for %rn" % self.compass_project_path) self.compass_pid = subprocess.Popen(["compass watch %s" % self.compass_project_path], shell=True, stdin=subprocess.PIPE, stdout=self.stdout, stderr=self.stderr) self.stdout.write("Compas watch process on %rn" % self.compass_pid.pid) super(Command, self).inner_run(*args, **options)这样很好。
查看https://docs.djangoproject.com/en/dev/howto/custom-management-
commands/了解有关django命令的更多详细信息
希望有人觉得这有帮助



