首页 > 解决方案 > 在鹡鸰流域中将内容向下迁移

问题描述

我有一个带有现有流场的鹡鸰页面模型。流场现在已更改格式,我希望将文本内容向下迁移到流块中。

初始模型(简化):

class ProjectPage(Page):
    description = StreamField(
        [
            ("text", blocks.RichTextBlock()),
            ("image", ImageBlock()),
        ]
    )

新模型(也简化了):

class ProjectPage(Page):
    description = StreamField(
        [
            (
                "section",
                blocks.StreamBlock(
                    [
                        ("text", blocks.RichTextBlock()),
                        ("image", ImageBlock()),
                    ]
                ),
            )
        ],
    )

目前,image块是空的,所以只有text项目需要迁移。

我尝试循环浏览页面,old_data = page.description.raw_data然后使用它来制作新内容[{'type': 'section', 'value': old_data}]

如果我page.save()得到 的值page.description.raw_data,我会看到新内容,但管理员仍会显示旧值。

我猜这与修订版与已发布版本有关,但我不知道如何解决这个问题。

欢迎任何指点!

标签: djangowagtaildjango-migrationswagtail-streamfield

解决方案


推荐阅读