django 如何从StaticBlock迁移到StructBlock?

kd3sttzy  于 2023-01-27  发布在  Go
关注(0)|答案(1)|浏览(112)

我必须将一个已经存在的StaticBlock更改为StructBlock

class SomeBlock(blocks.StaticBlock):
    pass

    class Meta:
        ...

致:

class SomeBlock(blocks.StructBlock):
    ...

    class Meta:
        ...

但是,如果wagtail页面中已经配置了SomeBlock,我会收到错误:

  • NoneType不可迭代 *

由于StaticBlock中没有任何内容,因此我需要为此编写一个自定义数据迁移。
基于列出的模式操作,我找不到一种方法来改变实际的块类型。我该怎么做呢?

4xrmg8kj

4xrmg8kj1#

StructBlocks和StaticBlocks位于StreamField中,因此您需要Wagtail特定的方法来转换StreamField中的块。有关此问题的讨论,请参见https://wagtail.org/blog/google-summer-of-code-toolkit-for-streamfield-data-migrations-in-wagtail/。然后,您可以使用https://github.com/wagtail/wagtail-streamfield-migration-toolkit中描述的项目。或者,如果您想试用Wagtail 4.2rc1,您可以尝试内置的迁移助手:https://docs.wagtail.org/en/latest/advanced_topics/streamfield_migrations.html#streamfield-data-migrations

相关问题