我在带有graphql
界面的django应用程序中使用wagtail。 Wagtail只是后端,我正在使用vuejs
实现graphql
和graphene
界面的编辑器。
我想在两个现有页面之间添加一个新页面。页面顺序取决于页面的路径参数。是否有可能在不操纵路径参数的情况下实现这一目标?
我可以改变wigtail页面的路径参数,但在我看来这很容易出错,而不是像wagtail的创建者那样。
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
的右侧,其后的所有其他页面将被移动到右侧。