wagtail - 在 Wagtail 流场模板中,如何检查结构块内结构块的字段是否为空?
问题描述
我有一个这样的 StructBlock :
class CardBlock(blocks.StructBlock):
header= blocks.StructBlock([
("text", blocks.CharBlock(required=False, help_text="Header text")),
("classes", blocks.CharBlock(required=False, help_text="Header css classes")),
],
template="streams/card_header_block.html")
image= ImageChooserBlock(required=False)
icon= blocks.CharBlock(required=False, help_text="fontawesome classes for an icon")
title= blocks.StructBlock([
("text", blocks.CharBlock(required=False, help_text="Title text")),
("classes", blocks.CharBlock(required=False, help_text="Title css classes")),
],
template="streams/card_title_block.html")
bodyHTML = blocks.RawHTMLBlock()
footer= blocks.StructBlock([
("text", blocks.CharBlock(required=False, help_text="Footer text")),
("classes", blocks.CharBlock(required=False, help_text="Footer css classes")),
],
template="streams/card_footer_block.html")
class Meta:
template = "streams/card_block.html"
icon = "placeholder"
label = "Card"
和这样的模板:
{% load wagtailcore_tags %}
{% load wagtailimages_tags %}
{% image value.image fill-300x150 as img %}
<div class="card {% if value.classes %} {{value.classes}} {% endif %}">
{% if value.header.text is not Null %}
{% include_block value.header %}
{% endif %}
{% if value.image %}
<img src="{{ img.url }}" alt="{{ img.alt}}" class="card-img-top" />
{% endif %}
<div class="card-body">
{% if value.title %}
{% include_block value.title%}
{% endif %}
{% if value.subtitle %}
{% include_block value.subtitle%}
{% endif %}
<div class="card-text">{% include_block value.bodyHTML %}</div>
{% if value.link %}
{% include_block value.link%}
{% endif %}
</div>
{% if value.footer %}
{% include_block value.footer%}
{% endif%}
</div>
我正在尝试检查像 Header 这样的子块是否由页面编辑器填充其值。如果不是,我不显示 HTML。但恐怕标题 div 仍然出现。我提出条件的方式有些问题。
解决方案
空白CharBlock
等于空字符串,它与 null 不同(无论如何,Python 的 null 值是None
,而不是Null
)。您可以像在模板中测试其他空值一样进行测试:{% if value.header.text %}
推荐阅读
- python-3.x - 从 Windows 切换到 Linux 时 Python 脚本出现错误
- python - pyOpenGL 远面渲染近面
- karate - 空手道 DSL 万无一失 - 报告重复时间
- java - Java中的逻辑运算顺序令人困惑
- java - Spring Boot Controller 应该如何处理“丢失”的请求标头?
- django - Django:没有返回 HttpResponse 对象错误
- ios - 在后台模式下被杀死后ios ble数据丢失
- arrays - Python,从数组中的字符串中删除一个''
- c - 在前序线程二叉搜索树中插入
- .net - aspnet_regiis 使用自定义提供程序加密 webconfig