【问题标题】:Wagtail add page between two existing pagesWagtail 在两个现有页面之间添加页面
【发布时间】:2019-02-10 13:52:15
【问题描述】:
我在带有graphql 接口的django 应用程序中使用wagtail。 Wagtail 只是后端,我正在使用graphene 实现一个带有vuejs 和graphql 接口的编辑器。
我想在两个现有页面之间添加一个新页面。页面顺序取决于页面的路径参数。是否可以在不操纵路径参数的情况下实现这一目标?
我可以在 wagtail 中更改页面的路径参数,但在我看来这很容易出错,而不是 wagtail 的创建者打算这样做。
【问题讨论】:
标签:
django
content-management-system
graphql
wagtail
graphene-python
【解决方案1】:
Wagtail 使用Django treebeard 来强制执行页面的树结构,并且Wagtail Page model 是Treebeard Node 模型的子类。我强烈反对手动操作path 参数,这可能会完全搞乱你的结构。而是使用 Treebeard API 添加/删除/移动页面/节点。
add_sibling 方法似乎在这里最合适,使用如下:
new_page = MyPageModel(
title='My Title'
slug='foo'
...
)
page = Page.objects.get(path='0001...')
page.add_sibling('right', instance=new_page)
您的new_page 将插入到您选择的page 的右侧,之后的所有其他页面将向右移动。