【发布时间】:2021-06-08 15:56:12
【问题描述】:
我有一个带有 StreamField 的页面模型:
from wagtail.core.fields import StreamField
from wagtail.embeds.blocks import EmbedBlock
class SomeModel(Page):
stream_field = StreamField(
[
("embed", EmbedBlock()),
]
)
我想通过代码创建一个新的SomeModel 实例并使用嵌入值填充stream_field。例如
from wagtail.embeds.blocks import EmbedValue
some_model_instance = SomeModel()
embed_url = "https://youtube.com/something"
embed_value = EmbedValue(embed_url)
embed_block = ("embed", embed_value)
some_model_instance.stream_field.append(embed_block)
some_model_instance.save()
上面的代码模式可以正常工作,但是当我在 Wagtail 管理 UI 中查看内容时,该字段为空(好像没有提供任何内容)。
如何通过代码向 Wagtail StreamField EmbedBlock 添加内容?
【问题讨论】:
-
我尝试将
embed_value包装在EmbedBlock中,但出现错误:AttributeError: 'EmbedBlock' object has no attribute 'url'
标签: wagtail wagtail-streamfield