在django admin中存储和编辑全局变量的最佳方法是什么,如下面的内容或其他一些更快或更好的方法呢? models.py:
from django.db import models
class Section(models.Model):
percent = models.PositiveSmallIntegerField(u'Percent')
some_variable = models.PositiveSmallIntegerField(u'Some_variable')
admin.py:
from app.models import Settings
class Settings(admin.ModelAdmin):
fieldsets = (
(None, {
'fields': ('percent', 'some_variable')
}),
)
和上下文处理器一样:
from app.models import Settings
def settings(request):
settings = Settings.objects.all()[0]
from django.conf import settings
return {
'PERCENT': settings.percent,
'SOME_VARIABLE': settings.some_variable,
}
答案 0 :(得分:1)
我有一个应用程序用于此任务,请在https://github.com/barbuza/dbconfig
进行检查与您的方式的唯一区别是我建议将配置部分描述为表单而不是模型
它还具有缓存支持,因此在配置值的每次读取操作中,您的代码都不会触及数据库
答案 1 :(得分:0)
如果没有所有细节,很难确定“最佳方式”,但您的解决方案可以正常运行并可能满足您的需求。一对夫妇的退款是:
percents
我总是建议在发明它之前尝试找一些东西,并且有一个新的应用程序以更通用的方式做一些类似的事情。 django-setman(不是名字的粉丝。还有一个更有经验的应用程序叫live-settings,我也玩过它。