我有以下非常简单的语句来在 wagtail 中渲染 block 。
{% for block in blocks %}
{% include_block block %}
{% endfor %}
for 循环与模板标记 include_block 一样工作并迭代 block 。然而,变量“block”在 include_block 执行的模板中不可访问。
{% set background_image = block.background_image.image %}
在 include_block 调用的模板中调用上述语句会引发以下错误。
'block' is undefined
这实际上没有意义,因为 Wagtail 的 include_block 文档指出变量会传递到被调用的模板中。
http://docs.wagtail.io/en/v1.9/advanced_topics/jinja2.html#include-block
我有以下语句为了显式传入变量,但它仍然不起作用,
{% include_block block with context %}
最佳答案
确实令人惊讶的是,block
没有被传递并可能构成错误(编辑:请参阅下面的评论以进一步讨论该问题)
也就是说,在 block 模板中, block 值可以作为变量 value
进行访问(请参阅 StreamField template rendering 部分的第 6 段)。
关于Django Wagtail Jinja2 include_block 标签不传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46185814/