如何检测代码是否正在Django shell中运行?

如何检测代码是否正在Django shell中运行?,django,Django,在某些情况下,我们通过Django shell(python manage.py shell)对应用程序进行手动清理。当然,这应该小心,但在这个特定的内部应用程序中,这只是最有效的工作方式 在Django shell中运行时,我想禁用一些否则会触发的行为 如何检测代码是否在shell中运行 我在想象这样的事情: if not django.SHELL: # Don't notify chat when running from the shell notifications.se

在某些情况下,我们通过Django shell(
python manage.py shell
)对应用程序进行手动清理。当然,这应该小心,但在这个特定的内部应用程序中,这只是最有效的工作方式

在Django shell中运行时,我想禁用一些否则会触发的行为

如何检测代码是否在shell中运行

我在想象这样的事情:

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

使用不同的设置文件并在其中包含一个您可以确定的标志,然后您可以使用
manage.py
的标志来使用该设置文件

python manage.py shell --settings=settings.my_override
在新的设置文件中添加要覆盖的设置,并在正常设置文件中包含一个默认为true的设置

SEND_NOTIFICATIONS = False
编码

使用正确的设置文件调用shell

python manage.py shell --settings=settings.my_override