【发布时间】:2021-08-26 23:23:01
【问题描述】:
很抱歉,我不得不问这个问题,因为它看起来很简单,但我已经搜索了几个小时的文档以寻找答案。场景是:
我想让编辑器嵌入也是超链接的图像,以便图像可点击并重定向到外部链接。文档说使用 StreamField。好的,我用 StreamField 建立了一个模型:
@register_snippet
class EventPageEntry(Orderable):
page = ParentalKey(EventPage, on_delete=models.CASCADE, related_name='event_entries')
heading = RichTextField(max_length=160)
body = StreamField([
('paragraph', blocks.RichTextBlock()),
('rich_image', blocks.StructBlock([
('image', ImageChooserBlock()),
('image_link', blocks.URLBlock())
]))
])
我的模板如下所示:
<div class="accordion-body">
{% for block in event_entry.body %}
{% if block.block_type == 'paragraph' %}
{{ block.value | richtext }}
{% endif %}
{% if block.block_type == 'rich_image' %}
{% image block.image fill-320x320 %}
<a href="{{ block.image_link }}">LINK TEXT</a>
{% endif %}
{% endfor %}
</div>
这就是发生的事情:
段落工作正常。我可以插入富文本块,它们完全按预期显示。
当我添加rich_image 时,我看不到任何图像。在锚元素中,出现了 LINK TEXT,但没有超链接(空字符串)。
我返回到 wagtail 编辑器,然后看到图像和链接。是的,我正在保存草稿并发布页面。
这样做的正确方法是什么? wagtail 编辑器看起来不错,它允许我在编辑器中插入图像和外部 URL,它们根本不会出现在模板中。
另外,如果我错过了有关如何以编程方式处理链接(而不是作为编辑器)的文档的某些隐藏部分,请告诉我我是个白痴并将我链接到该页面。我就是找不到。
【问题讨论】:
-
我不知道您所说的“以编程方式处理链接(而不是作为编辑器)”是什么意思 - 我建议您将其作为一个单独的问题打开,详细说明您想要什么去做。
标签: wagtail wagtail-streamfield wagtail-snippet