很抱歉,我不得不问这个问题,因为它看起来很简单,但我已经搜索了几个小时的文档来寻找答案。场景是:
我想让编辑器嵌入也是超链接的图像,这样图像就可以点击并重定向到外部链接。文档说使用 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 编辑器看起来不错,它允许我在编辑器中插入图像和外部 URL,它们根本不会出现在模板中。
此外,如果我错过了有关如何以编程方式处理链接(而不是作为编辑器)的文档的某些隐藏部分,请告诉我我是个白痴并将我链接到该页面。我就是找不到。