Django:持久化的数据库设置

2 投票
1 回答
540 浏览
提问于 2025-04-16 09:45

我想在我的Django应用中存储一些设置,这些设置就是一些键值对。请问Django有没有什么常用的方法或者内置的功能来实现这个,还是我需要自己来做?

class Setting(models.Model):
     key = models.TextField()
     value = models.TextField()

当然,我希望能够存储任何类型的数据作为键和值。也许我可以用pickle把它们都转换成字符串。

1 个回答

0

我最近在玩一个叫做django-satchmo的网上商店应用程序。Satchmo使用了一个叫做satchmo-livesettings的工具,或者简单称为livesettings,来实现一些设置功能。此外,你还可以通过管理界面来更改这些设置。

唯一的问题是,我没有找到关于如何使用livesettings的教程。不过,如果你查看一下satchmo的代码,就能明白它是怎么工作的。

这是我的一个例子:

from livesettings import config_register, StringValue, PositiveIntegerValue
SHOP_GROUP = ConfigurationGroup('SHOP', ('ShirtSale Shop Settings'), ordering=0)
CHARGE_PORTO = config_register(
    BooleanValue(SHOP_GROUP,
             'CHARGE_PORTO',
             description = ('Porto Erheben?'),
             help_text = ("Wird bei Bestellungen zusaetzlich ein Porto erhoben?"),
             default = True))

我把这些代码放在了config.py文件里。要执行这个文件,我需要:

import config

在admin.py文件里(我在想这是否必要)

为了访问这些设置,我在urls.py文件里加入了以下内容:

(r'^settings/', include('livesettings.urls')),

撰写回答