Трясогузка добавить страницу между двумя существующими страницами

Я использую трясогузку в приложении 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 и все остальные страницы после него будут сдвинуты вправо.

Другие вопросы по тегам