2014-11-01 5 views
2

이미지 같은 기본 템플릿 변수를 사용합니다. 이것에Jinja2 부모 템플릿에서

{% extends "base.html" %} 
{% do styles.append("index.css") %} 

하나 개의 솔루션은 파이썬 코드에서 템플릿을 렌더링 할 때 빈 목록으로 styles을 정의하는 것입니다. 그러나 렌더링하는 모든 템플릿에 styles=[]을 추가하고 싶지 않습니다.

가져 오기 기능이 작동하지 않습니다. 더 이상 "스타일이 정의되지 않았 음"을 알려주지는 않지만 상위 템플릿의 헤드 섹션에는 렌더링되지 않습니다.

{% extends "base.html" %} 
{% from "base.html" import styles %} 
{% do styles.append("index.css") %} 

어떻게 해결할 수 있습니까?

추 신 : 테스트하려면 확장에 jinja2.ext.do을 추가해야합니다.

답변

0

당신은

base.html

<!DOCTYPE html> 
<html> 
    <head> 
    <link href="{{style}}" ref="stylesheet" type="text/css; charset=utf8"> {# all global css includes you need #} 
    {% block styles %} 
    {% endblock styles %} 
    </head> 
    <body> 
    {% block body %} 
    {% endblock %} 
    </body> 
</html> 

과 같을 것이다 사용하여이 블록을 달성 할 수있는 다음 child.html과 같을 것이다 :

{% extends "base.html" %} 

{% block styles %} 
    <link href="{{style}}" ref="stylesheet" type="text/css; charset=utf8"> {# all css files you need #} 
{% endblock styles %} 
관련 문제