Wir haben eine App das ist eine Fusion von Kolben und Django und es verwendet Mako als Vorlage-Engine, wir wollen alternative Vorlagen in einigen Ansichten für wenn der Benutzer eingeschaltet ist Handy, die derzeit die, was ich getan habe, ist zwei Unterordner in meinem Vorlagenordner zu machen und die render-Methode overide die entsprechende makoAlternative mobile Vorlagen für eine Mako + Flask-Django App
templates
mobile
base.mako
index.mako
desktop
base.mako
index.mako
results.mako
So zum Beispiel greifen, wenn ich mache nennen („index.mako“) und Die Anfrage hat request.mobile==True
dann wird die Datei URL auf mobile/index.mako
übersetzen, wenn die 'mobile/{einige Vorlage} .mako' nicht existiert wird es automatisch greifen 'desktop/{einige Vorlage} .mako', da alle Vorlagen existieren für der Desktop. Das Problem ist jetzt mit inheritence kommt, sage ich die folgende Vorlage
results.mako
<%inherit file="base.mako" />
<select>
------
</select>
und ich rufe die render ("results.mako") mit request.mobile == wahr haben, den Weg wird in desktop/results.mako übersetzen (da die results.mako existiert nicht für mobile) und die results.mako wird erben von der 'desktop/base.mako' (da es den relativen pfad verwendet) und nicht die richtige 'mobile/base.mako 'sollte verwendet werden, da es ein mobiles und das mobile/base.mako gibt.
Irgendwelche Ideen, wie man dies in einem eleganten (vermeiden Sie wenns innerhalb des mako) Weges löst? Vielleicht, indem Sie irgendwie das Verzeichnis ändern, denkt, dass die Vorlage sich befindet?