事情是,我们的网站和许多其他的,有很多设计选项,应该由非开发人员编辑.我们正在谈论在数据库中真正没有位置的独立站点范围的常量.将它们放在数据库中将导致许多无意义的查询.缓存可以减轻这种情况,但是这似乎不必要地复杂,以处理settings.py文件中的一行可以做的事情.
我确实注意到了this dbsettings app,但它是老旧的,没有维护.我也注意到,django电子商务应用程序Satchmo包含了这个dbsettings应用程序的用例特定的分支.我们可以在我们的网站上建立类似的东西,一个将某些设置作为键/值对存储在单个数据库表中的应用程序,但它似乎似乎是错误的方法.为什么把数据库中的东西放在不属于那里的地方,以便使非开发人员更易于编辑?
解决方法
Not all settings belong in
settings.py
,as it has some
particular limitations:
Settings are project-wide. This not only requires apps to clutter up
@H_404_27@
settings.py
,but also increases the chances of naming
conflicts.Settings are constant throughout an instance of Django. They cannot be
@H_404_27@
changed without restarting the application.Settings require a programmer in order to be changed. This is true even
@H_404_27@
if the setting has no functional impact on anything else.
如果dbsettings不适合你,那么实现你自己的,或者fork它.看起来不是太难了.