wagtailでブロックをレンダリングするには、次の非常に簡単なステートメントがあります。Django Wagtail Jinja2変数を渡さないinclude_blockタグ
{% for block in blocks %}
{% include_block block %}
{% endfor %}
forループは、テンプレートタグinclude_blockと同じように動作し、ブロックを反復処理します。ただし、変数 'block'はinclude_blockによって実行されるテンプレートではアクセスできません。
{% set background_image = block.background_image.image %}
上記の文は、include_blockによって呼び出されたテンプレートで、次のエラーをスローします。セキレイのinclude_blockのドキュメントは、変数と呼ばれるテンプレートに受け継がれ得ることを述べているので
'block' is undefined
これは本当に意味がありません。
http://docs.wagtail.io/en/v1.9/advanced_topics/jinja2.html#include-block
block
は受け継がれないとなる可能性があることを確かに驚くべきことである私は、明示的に変数を渡すために、次の文を持っているが、それはまだ動作しません、
{% include_block block with context %}
ありがとうございました!私はドキュメントでそれを混乱させた。私はその価値がブロックの一部であると思った。 structブロックとブロックを持つStreamブロックとはちょっと混乱します... –
可能性のあるバグを少し見て、[documentation](http://jinja.pocoo.org/docs/2.9/templates/# import-context-behavior)は、Jinjaの '2.0'では、"インクルードされたテンプレートに渡されたコンテキストにテンプレートに定義された変数が含まれていませんでした "と述べています。これはおそらく '2.1'で修正されました。インストールしたJinjaのバージョンを確認できますか?必要があればバグを報告します。 –
ありがとうございます。私はJinja 2.9を使用しています。これが私がとても困惑した理由です。 –