Как объединить несколько пользовательских команд управления в Django?

Я написал набор команд для своего проекта Django обычным способом. Возможно ли объединить несколько команд в одну команду?

class Command(BaseCommand):
    """ import all files in media in dir and add to db
    after call  process to generate thumbnails  """

    def handle(self, *args, **options):
       ...

Для того чтобы сделать простые шаги, у меня есть такие команды, как: импорт файлов, чтение метаданных из файлов, создание эскизов и т.д. Теперь задача состоит в том, чтобы создать команду "do all", которая каким-то образом импортирует эти команды и выполняет их одну за другой.

Как это сделать?

Вы можете определить команду DoAll и использовать django django.core.management.call_command для запуска всех ваших подкоманд. Попробуйте сделать что-то вроде следующего:

class FoobarCommand(BaseCommand):
    """ call foo and bar commands """

    def handle(self, *args, **options):
        call_command("foo_command", *args, **options)
        call_command("bar_command", *args, **options)
Вернуться на верх