【问题标题】:Does django-constance admin supports database backend?django-constance admin 是否支持数据库后端?
【发布时间】:2016-09-05 18:16:39
【问题描述】:

我正在尝试设置管理员以显示要存储在数据库后端(Postgres 9.5.0)中的设置。我在 shell_plus 中手动创建了如下值:

在[1]中:从constance.backends.database.models导入Constance

在 [2] 中:first_record = Constance.objects.get(id=1)

在 [3] 中:first_record 出[3]:

pg-admin 正确显示了该条目,尽管 django admin 根本没有显示它。我为两个数据库运行了 migrate 命令(我有默认数据库和产品数据库),但记录仍然没有显示。当然,我可以通过强制向管理员注册,如下所示: admin.site.register(康斯坦斯) 但我的问题是是否有必要?

【问题讨论】:

    标签: django django-models django-admin


    【解决方案1】:

    是的,他们有。

    你需要管理依赖,但是你可以使用next命令来安装:

    pip install "django-constance[database]"
    

    您还需要在settings.py 中添加一些附加设置:

    CONSTANCE_BACKEND = 'constance.backends.database.DatabaseBackend'
    
    INSTALLED_APPS = (
        # other apps
        'constance.backends.database',
    )
    
    #optional - in case you want specify table prefix
    
    CONSTANCE_DATABASE_PREFIX = 'constance:myproject:'
    

    然后你需要通过运行命令python manage.py migrate database来应用迁移

    要在管理员中显示设置输入,您应该在 settings.py 中指定它们。有多种类型的字段,您甚至可以使用CONSTANCE_ADDITIONAL_FIELDS 参数添加自己的字段类型。

    CONSTANCE_CONFIG = {
        'THE_ANSWER': (42, 'Answer to the Ultimate Question of Life, '
                           'The Universe, and Everything'),
    }
    

    您可以在文档page 阅读更多内容。

    【讨论】:

    • 所有设置都已按建议完成,pip 安装已完成
    • @ReginaSas 用附加信息更新了答案。为了在管理区域中显示它们,您应该在 setting.py 中定义输入
    • 这正是我试图从 settings.py 中移动一些设置并将它们存储在数据库中的原因,除非我误解了这个库的目的。
    • @ReginaSas 正如我在github.com/jazzband/django-constance/blob/master/constance/… 中看到的,他们从settings.CONFIG.items() 获取输入字段,实际上是CONFIG = getattr(settings, 'CONSTANCE_CONFIG', {})。所以不可能以不同的方式添加输入。据我了解,您不想在 setting.py 中存储一些设置? django-constance 仅允许您为用户添加更改管理区域中的 sime 设置的可能性,但不能创建新的名称值。
    • 是的,我不想在 settings.py 中存储一些设置是正确的。看起来你对 CONFIG = getattr(settings, 'CONSTANCE_CONFIG', {}) 是正确的。我仍然不确定开发人员说它支持数据库后端是什么意思。
    猜你喜欢
    • 2017-03-10
    • 2014-02-28
    • 2020-05-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-18
    • 2010-09-07
    • 2016-11-10
    相关资源
    最近更新 更多