Я создал шаблон Jinja2 под названием урок.html, который определяет базовую структуру урока. Из этого я получаю один дочерний шаблон для каждого фактического урока (поскольку содержание каждого урока отличается). Например, intro.html, variable.html, lists.html и functions.html — все они являются производными от Lesson.html.
Наряду со слайдами, упражнениями и прочим, к каждому реальному уроку есть видео на YouTube. Я хочу поместить идентификатор видео в файл дочернего шаблона, но затем поместить HTML-код, который фактически ссылается на видео, в родительский шаблон (т. Например, я хотел бы, чтобы урок.html выглядел так:
<div class="youtube"><br/>
<iframe title="{{TITLE}}" time="{{TIME}}" src="http://www.youtube.com/embed/{{ID}}"></iframe>
<br/>
</div>
а затем задайте TITLE, TIME и ID в самом файле дочернего шаблона (поскольку это наиболее логичное место для их хранения). Мой текущий хак заключается в создании функции, которая принимает эти значения в качестве аргументов и возвращает блок HTML, который нужно вставить в нужное место:
{{youtube("Title of this Lecture", "abcde01234", "05:10")|safe}}
но (а) я бы предпочел использовать прямое расширение шаблона, а не вызовы функций, и (б) название, идентификатор YouTube и время явно не указаны в файле шаблона урока (что затрудняет их извлечение для использования в другом месте: я можно сделать это с помощью регулярных выражений, но я бы не хотел).
Есть ли простой способ определить значения в дочернем шаблоне для использования в родительском шаблоне?