在运行时用Django项目动态添加到TEMPLATE_DIRS
问题描述:
对于我正在开发的Django项目,我需要能够允许用户指定TEMPLATE_DIRS中使用的路径。这是为了实现可选的“主题”。例如:在运行时用Django项目动态添加到TEMPLATE_DIRS
TEMPLATE_DIRS = (
os.path.join(WEBSITE_ROOT, 'templates', THEME_NAME).replace('\\', '/'),
os.path.join(WEBSITE_ROOT, 'templates', 'default').replace('\\', '/'),
)
但THEME_NAME变量应该来自数据库通过站点管理。
任何想法?
答
我做了这样的事情,请看看这里https://github.com/ASKBOT/askbot-devel/blob/master/askbot/skins/loaders.py
除了模板加载器,你可能需要的手段来解决特定于主题的媒体。它可以是一个模板标签或一个过滤器,它需要一些基本URL并添加主题前缀或类似的东西,也可以自动跟踪媒体版本。这样,当你刷新.js或其他文件时,客户端将不得不加载最新版本。
答
不知道这是否是同样的问题,因为我的问题的模板theme switching, template and css file layout on a django site
子目录可以设置为背景VAR被用作参数扩展模板标签