在django admin中存储和编辑全局变量的最佳方法是什么?

时间:2012-02-15 13:45:29

标签: python django

在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,
    }

2 个答案:

答案 0 :(得分:1)

我有一个应用程序用于此任务,请在https://github.com/barbuza/dbconfig

进行检查

与您的方式的唯一区别是我建议将配置部分描述为表单而不是模型

它还具有缓存支持,因此在配置值的每次读取操作中,您的代码都不会触及数据库

答案 1 :(得分:0)

如果没有所有细节,很难确定“最佳方式”,但您的解决方案可以正常运行并可能满足您的需求。一对夫妇的退款是:

  1. 您只能处理percents
  2. 每次阅读设置时,都需要进行数据库调用
  3. 我总是建议在发明它之前尝试找一些东西,并且有一个新的应用程序以更通用的方式做一些类似的事情。 django-setman(不是名字的粉丝。还有一个更有经验的应用程序叫live-settings,我也玩过它。