Django - как отличить, запускается код от manage.py или от http-сервера

Я настроил AppConfig в django для запуска некоторых процессов, необходимых для основного приложения, как описано в документации django.

В обычном процессе инициализации метод ready вызывается Django только один раз. Но в некоторых угловых случаях, особенно в тестах, которые работают с установленными приложениями, ready может быть вызван более одного раза. В таком случае либо пишите идемпотентные методы, либо установите флаг в классах AppConfig, чтобы предотвратить повторный запуск кода, который должен быть выполнен только один раз.

Два вопроса:

  1. По моему опыту, метод ready() всегда вызывается как минимум дважды, даже если он просто печатает сообщение hello. Как добавить флаг, указанный в документации?
  2. Я не хочу, чтобы процессы запускались, когда я запускаю команды manage.py (например, для миграции). Как я могу управлять этим в коде?
Вернуться на верх