g在两个现有页面之间添加页面

时间:2018-09-05 12:09:03

标签: django content-management-system graphql wagtail graphene-python

我在带有graphql界面的Django应用程序中使用using。 Wagtail只是后端,我正在使用vuejs和使用graphql的{​​{1}}接口实现编辑器。

我想在两个现有页面之间添加一个新页面。页面顺序取决于页面的路径参数。是否可以在不控制路径参数的情况下实现这一目标?

我可以在wagtail中更改页面的路径参数,但是在我看来这很容易出错,而不是wagtail的创建者打算这样做。

1 个答案:

答案 0 :(得分:3)

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的右侧,之后的所有其他页面将移至右侧。