我如何在django shell中打印设置的内容?

当我运行python manage.py shell时,我可以打印出python路径

>>> import sys
>>> sys.path

我应该键入什么来检查所有django设置?

Frankie Ribery asked 2020-08-10T04:51:17Z
5个解决方案
51 votes
from django.conf import settings
dir(settings)

然后从name显示的内容中选择属性说:

settings.name

其中name是您感兴趣的属性

或者:

settings.__dict__

打印所有设置。 但是它还会打印模块标准属性,这可能会使输出混乱。

pajton answered 2020-08-10T04:51:35Z
43 votes

我知道这是一个老问题,但是对于django(1.6+)的当前版本,您可以通过以下方式在命令行中完成此操作:

python manage.py diffsettings --all

结果将显示所有设置,包括默认设置(在设置名称前面以###表示)。

Noah Abrahamson answered 2020-08-10T04:52:00Z
15 votes

如果一个新手偶然发现了这个问题,希望用勺子喂它打印所有设置的值:

def show_settings():
    from django.conf import settings
    for name in dir(settings):
        print(name, getattr(settings, name))
Skylar Saveland answered 2020-08-10T04:52:20Z
14 votes

要显示所有django设置(包括未在本地设置文件中指定的默认设置):

from django.conf import settings
dir(settings)
Vinod Kurup answered 2020-08-10T04:52:40Z
2 votes

在您的Shell中,您可以调用Django的内置diffsettings:

from django.core.management.commands import diffsettings

output = diffsettings.Command().handle(default=None, output="hash", all=False)

Nick S. answered 2020-08-10T04:53:00Z
translate from https://stackoverflow.com:/questions/6369697/how-do-i-print-out-the-contents-of-my-settings-in-a-django-shell