【问题标题】:Getting the page url within a block in Wagtail在 Wagtail 的块中获取页面 url
【发布时间】:2020-05-08 07:47:08
【问题描述】:

使用 Wagtail 2.9,我正在尝试创建一个允许将其文本内容共享到 Twitter 的块。块本身很简单:

class QuotableShare(StructBlock):
    text = TextBlock(required=True)

    class Meta:
        icon = 'fa-twitter'
        template = 'blocks/quotable_share.html'

但是,我想访问显示该块的页面的 URL,以将其作为链接包含在要共享的消息中。在quotable_share.html 模板中,我尝试过:

{{ request.get_full_path }}
{{ request.path }}
{{ request.full_path }}

但没有人允许我访问页面 URL。

在遍历 StreamField 块时,有没有一种方法可以在不将其作为模板变量传递的情况下访问 URL?

【问题讨论】:

    标签: wagtail wagtail-streamfield wagtail-pageurl


    【解决方案1】:

    来自关于模板渲染的文档 - https://docs.wagtail.io/en/latest/topics/streamfield.html#template-rendering

    {{ my_block }} 的写法大致相当于{% include_block my_block %},但缩写形式更具限制性,因为它不传递来自调用模板的变量,例如请求或页面;因此,建议您仅将其用于不呈现自身 HTML 的简单值。

    因此,您需要更新页面模板中的块渲染以使用不同的语法。 {% include_block my_block %}.

    您可以对整个流字段执行此操作,也可以对您知道需要可用请求对象的特定块执行此操作。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 2018-06-08
    • 2020-10-09
    • 1970-01-01
    相关资源
    最近更新 更多