Каково реальное использование каталога management/commands в приложении Django?

В документации написано, что его можно использовать для написания пользовательских команд Django-admin. Но мой вопрос в том, зачем нам писать пользовательские команды администратора Django? Приведенный пример в официальной документации кажется мне немного сухим. Я был бы очень благодарен, если бы кто-нибудь привел реальные примеры, из которых я мог бы связать его использование в реальной жизни.

Django doc on management/commands:https://docs.djangoproject.com/en/2.2/howto/custom-management-commands/

Я в основном использую его из Cron / Scheduled Tasks...

Некоторыми потенциальными примерами могут быть:

  1. Отправка отчетов/электронных писем
  2. Запуск скриптов для обновления+синхронизации некоторых значений
  3. Обновление кэша
  4. Любое крупное обновление значений - сохраните его в команду для запуска на Prod Env
    • Я делаю ее + тестирую локально, но потом не хочу копировать+вставлять ее в терминал SSH, потому что она иногда становится беспорядочной при вставке.

У меня также есть команда управления dothing, которая устанавливает весь проект... запускает миграции, собирает статику, импортирует db, создает тестовых пользователей, создает необходимые структуры папок и т.д.

У меня также есть пара команд, которые я использую, но которые я не сделал в Views... Маленькие инструменты, помогающие мне проверять и очищать данные, выплевывающие их представление

Django запланированные операции и генерация отчетов из cron - очевидный вариант.

Другой способ я использую для загрузки данных в БД из файлов csv. В среде команд управления легко обрабатывать плохие строки. Я записываю исходную строку csv в файл исключений (с добавлением столбца с описанием ошибки), а затем могу просмотреть его и решить, что делать с этими строками. Иногда это просто тривиальная правка и повторная передача через команду управления. То же самое можно сделать и через представление, но это дополнительная работа для IMO без пользы.

Вернуться на верх