Во-первых, я бы порекомендовал выполнять выборку вашей страницы в методе get_context
, чтобы вы могли свободно использовать методы ORM Django, а не только те, которые можно записать в шаблоне. В частности, вы можете использовать Page.objects.get(...)
для извлечения конкретной страницы на основе заголовка (или любого другого критерия):
class HomePage(Page):
# ...
def get_context(self, request):
context = super().get_context(request)
context['about_pages'] = Page.objects.get(title='About').get_children()
return context
Это позволит вам написать {% for item in about_pages %}
в вашем шаблоне.
Если вы не можете полагаться на то, что заголовок страницы будет предсказуемым, например «О программе», вам придется решить, какой другой критерий определяет его как «О странице». Обычные подходы заключаются в том, чтобы использовать слаг (Page.objects.get(slug='about')
), который с меньшей вероятностью будет изменен случайно, или определить выделенный тип страницы AboutPage
и выборку на основе этого: AboutPage.objects.first()
.