如何在模板中显示来自流字段的外部链接?

用户3170530

很抱歉我不得不问这个问题,因为它看起来很简单,但我一直在搜索文档数小时以寻找答案。场景是:

我想让编辑器嵌入也是超链接的图像,以便图像可点击并重定向到外部链接。文档说使用 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,它们根本不会出现在模板中。

另外,如果文档中有一些隐藏的部分我错过了如何以编程方式处理链接(而不是作为编辑器)请告诉我我是个白痴并将我链接到页面。我就是找不到。

加气工

正如模板渲染文档中提到的:当您遍历 StreamField ( {% for block in event_entry.body %}) 中的块时block您返回对象具有两个属性,block_typevalue. 这适用于所有块类型,包括 StructBlock - 唯一的区别是value属性中的值类型在 StructBlock 的情况下,value是一个包含您定义的各个子块的数据的字典 - 因此要输出数据,您需要查看block.value,而不仅仅是block.

{% if block.block_type == 'rich_image' %}
    {% image block.value.image fill-320x320 %}
    <a href="{{ block.value.image_link }}">LINK TEXT</a>
{% endif %}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python - 如何显示来自流媒体源的数据

如何在ActiveAdmin中显示来自ALIAS的相关记录的链接?

如何在Prestashop中显示来自外部API的产品

如何在引导模式中显示来自输入字段的信息?

Django:如何在模板中显示相关模型字段

如何在AboutBox的描述字段中显示超链接

如何在eXist-db中的模板中显示错误日志,而不是在模板外部?

如何在车把模板中显示来自服务器的数据?

如何在本机反应中显示来自 MySQL DB 表的链接

如何在html页面中显示来自外部文件夹的图像

如何在OpenCart 3模块管理面板中显示来自媒体库的图像选择字段

如何在PHP中运行外部链接

如何在菜单中添加外部链接

如何在模板中呈现ForeignKey字段?

如何在模板中呈现选择字段

如何在Angular中的同一字段中显示来自相应类的字段名称

如何在 Java Bean 的对话框中显示外部链接内容?

如何在Jinja2模板中显示date_time字段?(烧瓶)

如何在我的 django HTML 模板中显示多对多字段?

如何在Azure ARM模板中链接模板?

如何在网格中的超链接字段的帮助下显示div

Supervisord不显示来自流程的标准输出

如何在模板中显示show ValidationError

如何在模板中显示父母的孩子?

如何在 erb 模板中显示数组?

如何在模板中显示数据

如何在HBS模板中显示数据?

如何在 Django 模板中显示 ImageField

如何在.ejs模板中显示错误