우리는 flasks와 django의 융합이며 mako를 템플릿 엔진으로 사용하는 app를 가지고 있습니다. 사용자가 켜져있을 때를위한 몇 가지보기에서 대안 템플릿을 제공하고자합니다 모바일, 현재 내가 무슨 짓을하는 것은 내 템플릿 폴더에 두 개의 하위 폴더를 만들고 적절한 마코를 잡기 위해 render 메소드를 오버라이드 (override)하는 것입니다mako + flask-django 앱을위한 대체 모바일 템플릿
그래서templates
mobile
base.mako
index.mako
desktop
base.mako
index.mako
results.mako
예를 들어 내가 렌더링 호출하는 경우 ("index.mako")와 요청이 request.mobile==True
이면 파일 URL을 mobile/index.mako
으로 변환합니다. 'mobile/{some template} .mako'가 존재하지 않으면 모든 템플릿이 존재하기 때문에 자동으로 'desktop/{some template} .mako'를 가져옵니다. 바탕 화면. 문제는 이제 상속되어, 나는 다음과 같은 템플릿
results.mako
<%inherit file="base.mako" />
<select>
------
</select>
가 있다고 나는, 경로 == request.mobile로 ("results.mako")를 렌더링 진정한 전화 results.mako는 모바일 용으로 존재하지 않으므로 desktop/results.mako로 변환하고 results.mako는 'desktop/base.mako'에서 상속받습니다 (관련 경로를 사용하므로). 올바른 '모바일/base.mako '는 모바일 이후에 사용해야하며 mobile/base.mako가 존재해야합니다.
우아한 방법으로 이것을 해결하는 방법에 대한 아이디어는 무엇입니까? 어쩌면 dir make가 템플릿을 찾은 것 같아서 변경해도 될까요?