Django:持久化的数据库设置
我想在我的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')),