Wagtail流图像忽略HTML文件

问题描述 投票:1回答:1

我已经设置了一个流文件,除图像外,所有块均起作用。我知道我一定忽略了一些显而易见的事情。显示图像。它只是忽略html。在我的models.py中,我有:

    content = StreamField(
    [
        ("title_and_text", blocks.TitleTextBlock()),
        ("full_rich_text", blocks.RichTextBlock()),
        ("simple_rich_text", blocks.LimitedRichTextBlock()),
        ("image_float_left", blocks.ImageChooserBlock()),
    ],
    null=True,
    blank=True,
 )

在我的HTML页面中,我有:

{% for block in page.content %}
    {% include_block block %}
{% endfor %}

其他所有块均正确显示。在我的blocks.py中,我有:

class ImageFloatLeftBlock(ImageChooserBlock):
"""Float an image to the left"""

class Meta:
    template = "streams/image_float_left_block.html"
    icon = "doc-full"
    label = "Float Image Left"

HTML文件将被忽略。为了确定,我将h1放入其中。正在显示图像。我认为它不在看streams / image_float_left_block.html文件。它确实适用于以相同方式设置的其他字段。例如,此作品有效:

class TitleTextBlock(blocks.StructBlock):
"""Title and text and nothing else."""

title = blocks.CharBlock(required=True, help_text="The heading for the block")
text = blocks.TextBlock(required=True, help_text="The body of the block")

class Meta:
    template = "streams/title_text_block.html"
    icon = "edit"
    label = "Title & Text"

我怀疑它是调用中的父类:

class ImageFloatLeftBlock(ImageChooserBlock):

我在块导入中找不到更合适的东西。什么是合适的父类,还是有其他问题?

django image wagtail
1个回答
2
投票

在StreamField定义中,您尚未告诉它使用自定义ImageFloatLeftBlock子类,因此它仍在使用没有模板设置的基本ImageChooserBlock。应该是:

content = StreamField(
    [
        ("title_and_text", blocks.TitleTextBlock()),
        ("full_rich_text", blocks.RichTextBlock()),
        ("simple_rich_text", blocks.LimitedRichTextBlock()),
        ("image_float_left", blocks.ImageFloatLeftBlock()),
    ],
    null=True,
    blank=True,
 )
© www.soinside.com 2019 - 2024. All rights reserved.