【发布时间】:2017-12-13 07:57:17
【问题描述】:
我想以编程方式在 wagtail 中创建一个 BlogPage,并设置它的 StreamField 值。我可以设置heading 字段。但是当我尝试设置paragraph 字段时,我得到了AttributeError: 'unicode' object has no attribute 'source'。我也想设置图片。
这是我的 BlogPage 模型。
models.py
class BlogPage(Page):
template = 'wagtail/test_page.html'
author = models.CharField(max_length=255)
date = models.DateField("Post date")
body = StreamField([
('heading', blocks.CharBlock(classname="full title")),
('paragraph', blocks.RichTextBlock()),
('image', ImageChooserBlock()),
])
content_panels = Page.content_panels + [
FieldPanel('author'),
FieldPanel('date'),
StreamFieldPanel('body'),
]
这是我通过运行此脚本创建页面的代码。
create_page.py
new_image_page = BlogPage(
title='Blog',
slug='michael',
author='michael',
date='2017-12-13',
body=[('heading','New Heading'), ('heading','New Heading 23232'), ('paragraph','My Paragraph')]
)
directory_page = Page.objects.get(slug='home')
directory_page.add_child(instance=new_image_page)
revision = new_image_page.save_revision()
revision.publish()
new_image_page.save()
【问题讨论】: