2010-11-19 42 views
3

对于我正在开发的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变量应该来自数据库通过站点管理。

任何想法?

回答

1

我做了这样的事情,请看看这里https://github.com/ASKBOT/askbot-devel/blob/master/askbot/skins/loaders.py

除了模板加载器,你可能需要的手段来解决特定于主题的媒体。它可以是一个模板标签或一个过滤器,它需要一些基本URL并添加主题前缀或类似的东西,也可以自动跟踪媒体版本。这样,当你刷新.js或其他文件时,客户端将不得不加载最新版本。