有谁知道在django中动态切换TEMPLATE_DIR的方法。
我需要为移动版本创建一组模板,并希望模板坐在里面有自己的目录,而不是在根模板目录:我想2个模板目录‘模板’和'mobile_templates‘,而不是后者使用’模板/移动‘。
我必须写我自己的模板加载器吗?
发布于 2009-09-28 17:18:32
您可以在设置文件中设置多个模板目录,Django将按照您列出的顺序搜索它们。问题是它并不关心你想要从a目录还是b目录中获取template_x.html。如果你在a目录和b目录中有相同的template_x,它将从列出的第一个目录中拉出,这可能会令人困惑。一个不错的方法是:
在某个地方只有一个模板目录叫做'templates‘。在这个文件夹中有一个名为'mobile‘的文件夹和一个名为'default’(或其他什么)的模板。然后,当你调用你的模板时,你也只需要使用目录路径。
在您的视图中:
# some mobile view (everything omitted brevity)
get_template('mobile/some_template.html')
# some normal view (everything omitted brevity)
get_template('default/some_template.html')在您的模板中:
移动模板:
{% extends 'mobile/base.html' %}Normal模板:
{% extends 'default/base.html' %}设置文件:
TEMPLATE_DIRS = (
'D:/some/path/to/templates',
)https://stackoverflow.com/questions/1485922
复制相似问题