页面类型随机显示 "Home page" 或 "page"
Page Type showing "Home page" or "page" randomly
我按照 Official Wagtail Docs 将新安装的 Wagtail 集成到现有的 Django 项目中。
我在现有 Django 的 models.py
.
中添加了自定义 HomePage
class
# myDjangoProject/models.py
class HomePage(Page):
template = "homepage.html"
content = RichTextField()
content_panels = Page.content_panels + [
FieldPanel("content")
]
Q1:为什么在上面的截图中,系统默认页面Welcome to Wagtail
是Page
类型,而新创建的New Page
自动是Home page
类型?
Q2:为什么在上面的截图中,系统默认页面Welcome to Wagtail
下新创建的子页面居然是Home page
,没有任何手动配置?
Q3:为什么在上面的截图中,所有新创建的页面都自动(无需手动配置)继承自我在MyDjangoProject/models.py
中自定义的HomePage
class?这如何反映在源代码级别?
Page
class 是 Wagtail 中所有页面类型的基础 class,但通常不希望让用户创建类型为 Page
而不是更具体的内容,因为无法向其添加新的内容字段。因此,the is_creatable
attribute 在 Page
上设置为 false,这意味着无法通过管理界面创建该类型的新页面。 (此属性不被子classes 继承,因此您创建的任何新页面类型默认为is_creatable = True
。)
最初的“欢迎”页面是作为 wagtail.core
应用程序迁移的一部分创建的。此时,Page
是唯一存在的页面类型(因为您的 HomePage 模型尚未定义),因此 Wagtail 使用的就是这种类型。默认页面不是您可以通过管理员自己创建的页面,这似乎有点奇怪,但没有真正的替代方法(除了根本不提供默认页面,这会使开发人员更难查看他们的安装是否正确)已经工作了)。
(当通过 wagtail start
设置一个全新的 Wagtail 项目时,项目模板包含迁移以将初始 Page
实例替换为提供的 HomePage
模型的实例,因此在这种情况下,它不那么令人困惑。)
在您定义 HomePage
模型后,这成为唯一具有 is_creatable = True
的页面类型,因此管理界面会在添加新页面时自动 select 使用此页面类型。当您在主页旁边添加另一个页面模型时,您会发现它会提示您 select 一种页面类型。
我按照 Official Wagtail Docs 将新安装的 Wagtail 集成到现有的 Django 项目中。
我在现有 Django 的 models.py
.
HomePage
class
# myDjangoProject/models.py
class HomePage(Page):
template = "homepage.html"
content = RichTextField()
content_panels = Page.content_panels + [
FieldPanel("content")
]
Welcome to Wagtail
是Page
类型,而新创建的New Page
自动是Home page
类型?
Welcome to Wagtail
下新创建的子页面居然是Home page
,没有任何手动配置?
MyDjangoProject/models.py
中自定义的HomePage
class?这如何反映在源代码级别?
Page
class 是 Wagtail 中所有页面类型的基础 class,但通常不希望让用户创建类型为 Page
而不是更具体的内容,因为无法向其添加新的内容字段。因此,the is_creatable
attribute 在 Page
上设置为 false,这意味着无法通过管理界面创建该类型的新页面。 (此属性不被子classes 继承,因此您创建的任何新页面类型默认为is_creatable = True
。)
最初的“欢迎”页面是作为 wagtail.core
应用程序迁移的一部分创建的。此时,Page
是唯一存在的页面类型(因为您的 HomePage 模型尚未定义),因此 Wagtail 使用的就是这种类型。默认页面不是您可以通过管理员自己创建的页面,这似乎有点奇怪,但没有真正的替代方法(除了根本不提供默认页面,这会使开发人员更难查看他们的安装是否正确)已经工作了)。
(当通过 wagtail start
设置一个全新的 Wagtail 项目时,项目模板包含迁移以将初始 Page
实例替换为提供的 HomePage
模型的实例,因此在这种情况下,它不那么令人困惑。)
在您定义 HomePage
模型后,这成为唯一具有 is_creatable = True
的页面类型,因此管理界面会在添加新页面时自动 select 使用此页面类型。当您在主页旁边添加另一个页面模型时,您会发现它会提示您 select 一种页面类型。