首页 > 解决方案 > Streamfield 模板中的 Wagtail 页面上下文

问题描述

我在 StreamField 中有带有自己模板的 StructBlock。我正在尝试从所述模板访问页面对象。

{% load wagtailcore_tags article_tags %}

  {%  article_constants as constants %}
    <div id="interactions__combo__addition" class="col-md-6">
      <h3>
        {% include_block page.translated_title %}
        + 
        <span id="interactions-combo-addition-temp">?</span> =
      </h3>
      <div alt="dangerous to synergy bar" style="height:10px; width:100%">
      </div>
    </div>
    <div class="interactions__combo__result col-md-5">
      <h3 class="interactions__combo__result__title">
       {{ constants.select_element }}
      </h3>
      <p class="interactions__combo__result__description">
        {{ constants.none_selected_text }} 
        {% include_block page.colour %}.
      </p>
    </div>

{% include_block page.colour %}并且{% include_block page.translated_title %}什么也不渲染。

预先感谢您的帮助。

标签: djangodjango-templateswagtailwagtail-streamfield

解决方案


{% include_block %}在页面模板上输出 StreamField时应使用该标记。例如,如果您的 StreamField 被调用body{% include_block page.body %}请在您的页面模板上使用。这将确保外部模板中的上下文变量(包括page)在您的 StructBlock 模板中可用 - 如果您{{ page.body }}改为使用,则 StructBlock 模板将呈现,但无法访问外部模板中的变量。

不要{% include_block %}用于不是 StreamFields 的字段page,例如page.translated_title.


推荐阅读