Я настроил потоковый файл, и все блоки работают, кроме изображения. Я знаю, что, должно быть, упустил из виду нечто очевидное. Изображение отображается. Он просто игнорирует 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):
Я не могу найти ничего более подходящего в импорте блоков. Каким будет соответствующий родительский класс или есть какая-то другая проблема?