Python 如何在Wagtail CMS中的StreamField上添加文档?
我有一个关于Wagtail CMS的问题 最近,我尝试以编程方式导入Wagtail页面模型实例的StreamField中的一些文档。我做了一些研究,但没有结果 目前我正在使用:Python 如何在Wagtail CMS中的StreamField上添加文档?,python,django,wagtail,Python,Django,Wagtail,我有一个关于Wagtail CMS的问题 最近,我尝试以编程方式导入Wagtail页面模型实例的StreamField中的一些文档。我做了一些研究,但没有结果 目前我正在使用: 摇尾1.13 Django 1.11.6 Python 2.7 这里是我需要将文档作为附件导入的页面模型(请参见同名字段): 在shell上,我尝试应用上解释的解决方案,但没有成功 event = EventPage.objects.get(pk=20) doc = Document.objects.get(pk=3
- 摇尾1.13
- Django 1.11.6
- Python 2.7
event = EventPage.objects.get(pk=20)
doc = Document.objects.get(pk=3)
event.attachments = [
('document',
[
StreamValue.StreamChild(
id = None,
block = DocumentChooserBlock(),
value = doc
)
]
)
]
Python给了我这个错误:AttributeError:“list”对象没有属性“pk”。
event.attachments=[('document',doc)]
我相信应该可以工作。(在上,StreamChild是必需的,因为AccordionRepeaterBlock是嵌套在StreamBlock中的StreamBlock;您的定义并非如此。)
要将文档添加到现有StreamField内容,请构建新列表并将其分配给事件。附件
:
new_attachments = [(block.block_type, block.value) for block in blocks]
new_attachments.append(('document', doc))
event.attachments = new_attachments
(目前您无法直接附加到StreamField值,但…
event.attachments=[('document',doc)]
应该可以工作,我相信。(在上,StreamChild是必需的,因为AccordionRepeaterBlock是嵌套在StreamBlock中的StreamBlock;您的定义并非如此。)
要将文档添加到现有StreamField内容,请构建新列表并将其分配给事件。附件
:
new_attachments = [(block.block_type, block.value) for block in blocks]
new_attachments.append(('document', doc))
event.attachments = new_attachments
(当前无法直接附加到StreamField值,但…以及当事件.附件已包含一些文档时是否要添加文档?以及当事件.附件已包含一些文档时是否要添加文档?