我们有一个应用程序,这是flask和django的融合,它使用mako作为模板引擎,我们希望在一些视图中提供替代模板,当用户在移动时,目前我所做的是在我的模板文件夹中创建两个子文件夹,并覆盖渲染方法来获取适当的mako
templates
mobile
base.mako
index.mako
desktop
base.mako
index.mako
results.mako例如,如果我调用render("index.mako"),请求有request.mobile==True,那么它会将文件url转换为mobile/index.mako,如果‘mobile/index.mako/{some template}.mako’不存在,它会自动获取' desktop /{some template}.mako‘,因为所有的模板都存在于桌面。现在的问题是继承,假设我有以下模板
results.mako
<%inherit file="base.mako" />
<select>
------
</select>我用request.mobile==True调用了render(" results.mako "),路径将转换为results.mako /Results.mako(因为移动端的桌面不存在),results.mako将继承自“results.mako/base.mako”(因为它使用相对路径),而不是正确的“results.mako/base.mako”,因为它是移动端的,而移动端/base.mako是存在的。
有没有办法以一种优雅的方式(避免mako中的if)来解决这个问题?也许通过以某种方式更改,dir make会认为模板已被定位?
https://stackoverflow.com/questions/38142195
复制相似问题