django - 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 %}
什么也不渲染。
预先感谢您的帮助。
解决方案
{% include_block %}
在页面模板上输出 StreamField时应使用该标记。例如,如果您的 StreamField 被调用body
,{% include_block page.body %}
请在您的页面模板上使用。这将确保外部模板中的上下文变量(包括page
)在您的 StructBlock 模板中可用 - 如果您{{ page.body }}
改为使用,则 StructBlock 模板将呈现,但无法访问外部模板中的变量。
不要{% include_block %}
用于不是 StreamFields 的字段page
,例如page.translated_title
.
推荐阅读
- react-datepicker - Javascript airbnb react-dates showClearDate 抛出
- javascript - 为什么我复制一个表和头部信息丢失
- ios - 如果我不打算发布它,我可以创建一个不遵循苹果限制的应用程序吗?
- typescript - TSLint 提到了泛型 Handler 的问题
- c# - 将实例属性传递给异步任务中的静态方法
- python - 使用 Python 3.x 在 Pandas 中使用零和常量值扩展/填充时间序列数据
- firebase - Flutter Firestore 将值保存为字符串
- ios - iOS - YouTube api 和全屏出现问题
- android - 使用多个 addChangeListener 时领域“无法创建异步查询”
- angular - Angular 6 ngx-bootstrap Datepicker 全局语言环境