使用 HTML 嵌入图像的鹡鸰
Wagtail embedding images with HTML
我们使用 StreamField 允许编辑器添加 HTML 自定义布局。我们过去可以通过查找图像的 ID 和嵌入代码来包含图像:
<embed alt="My Image" embedtype="image" format="responsive" id="3896"/>
自从对 Wagtail 执行更新后,这些都不会呈现。我想知道这是否是一个已被删除的意外功能,或者此代码是否已更改。
我想出了一个解决方案,使用 custom template filter:
from django.utils.safestring import mark_safe
from wagtail.core.rich_text import expand_db_html
@register.filter
def betterhtml(html):
return mark_safe(expand_db_html(html))
这利用了出色的 Wagtail expand_db_html
功能,该功能处理作为富文本编辑器的一部分添加的嵌入代码。
在我的模板中,当我有带有 RawHTMLBlock 的 StreamField 时,我可以使用:
{% with blocks=self.content %}
{% for block in blocks %}
...
{% elif block.block_type == 'htmltext'%}
{{ block.value|betterhtml}}
{% endfor %}
我们使用 StreamField 允许编辑器添加 HTML 自定义布局。我们过去可以通过查找图像的 ID 和嵌入代码来包含图像:
<embed alt="My Image" embedtype="image" format="responsive" id="3896"/>
自从对 Wagtail 执行更新后,这些都不会呈现。我想知道这是否是一个已被删除的意外功能,或者此代码是否已更改。
我想出了一个解决方案,使用 custom template filter:
from django.utils.safestring import mark_safe
from wagtail.core.rich_text import expand_db_html
@register.filter
def betterhtml(html):
return mark_safe(expand_db_html(html))
这利用了出色的 Wagtail expand_db_html
功能,该功能处理作为富文本编辑器的一部分添加的嵌入代码。
在我的模板中,当我有带有 RawHTMLBlock 的 StreamField 时,我可以使用:
{% with blocks=self.content %}
{% for block in blocks %}
...
{% elif block.block_type == 'htmltext'%}
{{ block.value|betterhtml}}
{% endfor %}