Wagtail рендеринг дерева страниц - PullRequest
0 голосов
/ 05 ноября 2018

Я пытаюсь создать карту сайта, которую пользователь может использовать для просмотра Иерархии сайта, дочерних страниц и родительских страниц и т. Д., Но я не могу найти способ показать это. Есть ли приложение, которое я могу использовать, или мне нужно написать собственную функцию?

1 Ответ

0 голосов
/ 05 ноября 2018

Вы можете получить опубликованные страницы, как это:

Page.objects.live()

https://docs.wagtail.io/en/v0.7/core_components/pages/advanced_topics/queryset_methods.html#module-wagtail.wagtailcore.query

Порядок по умолчанию - по пути. Используйте поле depth (число) и несколько CSS для создания иерархии.

Вы можете добавить контекст на свою страницу следующим образом:

class SitemapPage(Page):
    ...

    def get_context(self, request, *args, **kwargs):
        context = super().get_context(request, *args, **kwargs)
        context.update({'pages': Page.objects.live()})
        return context

А в вашем шаблоне:

{% for obj in pages %}
   <a href="{% pageurl obj %}" class="level-{{ obj.depth }}">{{ obj.title }}</a>
{% endfor %}
...