对于我正在研究的Django项目,我需要能够允许用户指定TEMPLATE_DIRS中使用的路径。这是为了实现可选择的“主题”。例如:
TEMPLATE_DIRS = (
os.path.join(WEBSITE_ROOT, 'templates', THEME_NAME).replace('\\', '/'),
os.path.join(WEBSITE_ROOT, 'templates', 'default').replace('\\', '/'),
)
但是THEME_NAME变量应该通过站点管理来自数据库。
有什么想法吗?
答案 0 :(得分:4)
写一个template loader,你可以指向一个主题目录。
答案 1 :(得分:1)
我做过类似的事情,请看看https://github.com/ASKBOT/askbot-devel/blob/master/askbot/skins/loaders.py
除了模板加载器,您可能还需要解决特定于主题的媒体的方法。例如,它可以是模板标签或过滤器,它可以获取一些基本URL并添加主题前缀或类似内容,您也可以自动跟踪媒体版本。这样,当您刷新.js或其他文件时,客户端将必须加载最新版本。
答案 2 :(得分:0)
不确定这是否与我的问题theme switching, template and css file layout on a django site
相同模板子目录可以设置为context var,用作扩展模板标记
的参数