使用Django模板引擎我可以在使用命名参数设置自定义上下文时包含另一个部分模板,如下所示:
{% include "list.html" with articles=articles_list1 only %}
{% include "list.html" with articles=articles_list2 only %}
正如您可能想的那样, articles_list1
和 articles_list2
是两个不同的列表,但我可以重用使用 articles
变量的相同的 list.html
模板 .
我'm trying to achieve the same thing using Jinja2, but I can'看看推荐的方式是什么,因为不支持 with
关键字 .
3 回答
Jinja2有an extension,它启用with关键字 - 它不会给你与Django相同的语法,它可能不会像你预期的那样工作,但你可以这样做:
但是,如果
list.html
基本上只是作为创建列表的一种方式,那么您可能希望将其更改为macro - 这将为您提供更大的灵活性 .这样你就可以将 multiple variables 传递给Jinja2 Include 语句 - (通过在 With 语句中用逗号分割变量):
对于2017年的读者,Jinja自
2.9
默认包含with
语句 . 无需延期 .http://jinja.pocoo.org/docs/2.9/templates/#with-statement