Трясогузка добавить страницу между двумя существующими страницами
Я использую трясогузку в приложении Django с graphql
интерфейс. Трясогузка - только бэкэнд, и я реализую редактор с vuejs
и graphql
использование интерфейса graphene
,
Я хотел бы добавить новую страницу между двумя существующими страницами. Порядок страниц зависит от параметра пути страницы. Возможно ли достичь этого без манипулирования параметром пути?
Я могу изменить параметры пути страниц в трясогузке, но мне кажется, что это подвержено ошибкам, а не тому, что создатели трясогузки намеревались сделать.
1 ответ
Wagtail использует древоборода Django для обеспечения древовидной структуры страниц, а модель Wagtail Page подклассов Treebeard Node
модель. Я бы настоятельно не рекомендовал манипулировать path
параметры вручную, что может полностью испортить вашу структуру. Вместо этого используйте API Treebeard для добавления / удаления / перемещения страниц / узлов вокруг.
Метод 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
и все остальные страницы после него будут сдвинуты вправо.