【问题标题】:settings file's variable manages from database in django设置文件的变量从 django 中的数据库管理
【发布时间】:2019-06-23 10:14:36
【问题描述】:

是否可以在 Django 中动态地从数据库中加载变量的值?

我是 Django 的新手。我试图从管理面板为这个 settings.py 的文件变量赋值。

models.py

from django.db import models

class Person(models.Model):
    RECAPTCHA_PUBLIC_KEY = models.CharField(max_length=100)
    RECAPTCHA_PRIVATE_KEY = models.CharField(max_length=100)

settings.py


RECAPTCHA_PUBLIC_KEY = '' #How to set this value from admin panel dynamically
RECAPTCHA_PRIVATE_KEY = ''

我必须在我的项目中安装“验证码”应用程序,因此需要设置必要键的值,但我正在尝试从数据库中设置此值。我可以从数据库中更改值吗?(如果你有新的想法来动态实现这个,那么也请建议我。)

提前致谢。

【问题讨论】:

  • 我不确定您是否可以在settings.py 中拥有查询模型的代码,因为此时仍在建立数据库连接。
  • 这就是问题所在。先生,还有其他解决方案可以在设置文件中动态赋值吗?

标签: python django


【解决方案1】:

是否可以在 Django 中动态地从数据库中加载变量的值?

是的。您可以使用 django-constance 之类的应用在运行时通过管理 UI 支持动态设置。

但是,我认为您的模型并不能清楚地表明这是您正在尝试做的事情。如果每个 Person 实例的 Recaptcha 键不同,则它们根本不是设置(或常量),它们只是每个人的值,应该像普通模型字段一样对待。

如果每个人都可以有自己的键,但系统需要默认值来用于没有键的 Person 实例,那么将一组键存储为设置并可能为每个人设置不同的设置(尽管这不是您当前编写模型的方式,因为这些关键字段不可为空)。

【讨论】:

    猜你喜欢
    • 2018-12-18
    • 2016-12-26
    • 2023-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-25
    • 1970-01-01
    相关资源
    最近更新 更多