Sky*_*Fox 8 python django django-admin
我的网站几乎没有全局配置.例如"smtp-server address","公司地址"等.
当然,我可以:
settings.py并在模板和应用程序中使用它;Configuration)并在那里写下所有需要的字段.如果我使用第一种方式,我无法在django-admin中更改此字段.
如果我使用秒方式它不是一个漂亮的解决方案,因为我将使用代码中的任何地方model_name.objects.get(id=1),我只需要一个实例.模型是为另一个任务创建的.
我怎么解决这个问题?
这就是我做的.可能不是最理想的解决方案,但对我有用.
创建一个配置模型并按照您的要点执行所有常用的操作2.创建一个函数(比如说configuration.view),它将拉出并返回dict中的配置值.
现在在你的settings.py,导入你的函数并将返回的dict设置为一个settings.py变量:
CONFIG = configuration.view.get_config()
创建一个模板上下文处理器,它将CONFIG在模板上下文中设置此dict.
def init_site_settings(request):
return settings.CONFIG
Run Code Online (Sandbox Code Playgroud)将此上下文处理器添加到您的 TEMPLATE_CONTEXT_PROCESSORS
现在,您可以自由地在模板中使用配置参数 {{my_config_key}}
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
3661 次 |
| 最近记录: |