Как я могу определить, что мой код выполняется через оболочку Django? - PullRequest
0 голосов
/ 22 октября 2019

В некоторых случаях мы выполняем ручную очистку нашего приложения с помощью оболочки Django (python manage.py shell). Конечно, это должно быть сделано с осторожностью, но в данном конкретном приложении это просто самый эффективный способ выполнить работу.

При работе в оболочке Django я хотел бы отключить некоторые действия, которые в противном случае были бы вызваны.

Как определить, что мой код выполняется через оболочку?

Я представляю что-то вроде:

if not django.SHELL:
    # Don't notify chat when running from the shell
    notifications.send(dev_user, ...)

1 Ответ

0 голосов
/ 22 октября 2019

Используйте другой файл настроек и включите в него флаг, который вы можете определить, затем вы можете использовать manage.py 's --setting, чтобы использовать этот файл настроек

Добавитьпараметр в новом файле настроек для переопределения и включения в обычный файл настроек значения по умолчанию true

SEND_NOTIFICATIONS = False

В коде

from django.conf import settings
if not settings.SEND_NOTIFICATIONS:

Вызовите оболочку с правильным файлом настроек

python manage.py shell --settings=settings.my_override
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...