Django库:定义自定义设置

时间:2017-02-11 07:38:51

标签: python django plugins settings

我正在开发一个Django库,这是Pypi上发布的一个可插件。此插件中的某些设置应由用户自定义,只需在<button onclick="newshow()">New Show!</button><br> <div id="show"></div>中设置值即可。目前我使用这个逻辑:

settings.py

在我的图书馆,当我需要获取设定值时,我会这样做:

# config.py
import django.conf


class DefaultValues(object):

    SETTING_1 = []
    SETTING_2 = 42


class SettingsWrapper(object):
    def __getattr__(self, item):
        result = getattr(django.conf.settings, item, None)
        if result:
            return result
        return getattr(DefaultValues, item)


settings = SettingsWrapper()

它工作正常,但我觉得我重新发明轮子。这里的目标是首先从from mylib.config import settings [...] settings.SETTING_1 模块(用户设置)获取值,如果未定义该值,则从django.conf.settings类中检索它。

最近,在深入研究Django代码时,我发现了DefaultValues模块,其中包含django.confLazySettingsBaseSettings类。特别是Settings的文档说:

  

设置的通用逻辑,无论是由模块还是由用户设置。

我的问题是:我可以将模块BaseSettings转换为使用Django类并执行相同的工作(可能更好)吗?

0 个答案:

没有答案