【问题标题】:Wagtail, StreamField renders admin text editor labels in the templateWagtail,StreamField 在模板中呈现管理员文本编辑器标签
【发布时间】:2018-04-02 11:48:10
【问题描述】:

我有一个带有 HTML 编辑器的 sn-p。

@register_snippet
class GalleryCategory(models.Model):
    text_links = StreamField(
        [('text', DemoStreamBlock())],
        null=True,
        blank=True)
    panels = [
        StreamFieldPanel('text_links'),
    ]

    def __str__(self):
        return self.name

当我从这个 sn-p 创建一个实例时,我在模板中呈现它,如下所示:

<strong>
     {% include_block category.text_links %}
</strong>

但是,这会输出:

 <strong>
    <div class="block-text">
     <div class="block-aligned_html"><dl>
      <dt>html</dt>
      <dd>Visit our <a href="/some page/" target="_blank">Facebook page</a> for more albums</dd>
      <dt>alignment</dt>
      <dd>normal</dd>
      </dl>
     </div>
    </div>
 </strong>

其中 htmlalignmentnormal 是文本编辑器中的标签。

【问题讨论】:

    标签: html wagtail wagtail-streamfield


    【解决方案1】:

    您看到的是StructBlock 的默认前端 HTML 表示。要覆盖这一点,您应该在StructBlock 定义上设置template 属性,如下所述:http://docs.wagtail.io/en/v2.0/topics/streamfield.html#template-rendering

    【讨论】:

    • 我无法理解这一点。当我添加 class AlignedHTMLBlock(StructBlock): html = RawHTMLBlock() class Meta: icon = "user" template = 'cms/gallery.html' 我收到 TypeError: 'class Meta' got invalid attribute(s): template跨度>
    • 我也尝试过 form_template,因为我使用的是版本:1.13.1 - 它因异常类型而崩溃:KeyError 异常值:'request'
    猜你喜欢
    • 2019-05-08
    • 2018-11-27
    • 2019-01-21
    • 2021-10-04
    • 2012-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多