我必须将一个已经存在的StaticBlock
更改为StructBlock
:
class SomeBlock(blocks.StaticBlock):
pass
class Meta:
...
致:
class SomeBlock(blocks.StructBlock):
...
class Meta:
...
但是,如果wagtail页面中已经配置了SomeBlock
,我会收到错误:
- NoneType不可迭代 *
由于StaticBlock
中没有任何内容,因此我需要为此编写一个自定义数据迁移。
基于列出的模式操作,我找不到一种方法来改变实际的块类型。我该怎么做呢?
1条答案
按热度按时间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