如何将 django 的设置对象变成字典?

thc*_*ark 6 python django django-settings python-3.x

我拥有的:

from django.conf import settings

def settings_to_dict(settings)
    cfg = {
        'BOTO3_ACCESS_KEY': settings.BOTO3_ACCESS_KEY,
        'BOTO3_SECRET_KEY': settings.BOTO3_SECRET_KEY,
        # repeat ad nauseum
    }
    return cfg

instance = SomeClassInstantiatedWithADict(**settings_to_dict(settings))
Run Code Online (Sandbox Code Playgroud)

我想要什么(使用 Django 1.11):

from django.conf import settings

instance = SomeClassInstantiatedWithADict(**settings.to_dict())
Run Code Online (Sandbox Code Playgroud)

我试过了:

from django.conf import settings

instance = SomeClassInstantiatedWithADict(**settings.__dict__)
Run Code Online (Sandbox Code Playgroud)

这是接近的,但__dict__只获得设置的一小部分,我认为这些设置是硬编码的,而不是添加的属性。谢谢你的帮助!

小智 8

使用以下代码:

from django.conf import settings
instance = settings.__dict__['_wrapped'].__dict__
Run Code Online (Sandbox Code Playgroud)

然后你将把整个设置字典instance作为字典。