FieldPanel 未能反映在 content_panels 上

问题描述

我正在将 wagtail 集成到我现有的 Django 项目中。 集成前:文件架构如下

|- 我的项目/
__|- 模板/
__|- manage.py
__|- 我的项目/
____|- urls.py
____|-models.py
____|- settings.py
____|- views.py

在我安装 wagtail 软件包并在 settings.py 上反映后,文件架构没有改变。现在我可以成功登录localhost/cms/

现在我想自定义 CMS admin 的 content_panel,因此我定义了下面的类;

# MyProject/models.py

class HomePage(Page):
    template = "homepage.html"
    content = RichTextField()
    content_panels = Page.content_panels + [
        FieldPanel("content")
    ]

然后我迁移了数据库并重新启动了 Web 服务器,但是我在 CMS 管理门户的 content_panels 上没有看到任何变化。为什么?

解决方法

https://docs.wagtail.io/en/stable/getting_started/integrating_into_django.html#start-developing所述 - 当您将 Wagtail 集成到现有项目中(而不是使用 wagtail start 项目模板)时,创建的初始主页将是基本的 Page 类型,没有内容字段。定义真正的 HomePage 类后,您需要删除初始页面并在其位置创建 HomePage 类型的页面(同时在设置 -> 站点下创建站点记录)。