2017-10-18 4 views
1

페이지 구조가 'home_page > blog_index page > blog_page'입니다. 블로그 페이지에는 하위 페이지가있을 수 있습니다. 이제 블로그 보관 메뉴를 만들려고합니다.Django wagtail 레벨이있는 ​​페이지를 가져 오는 어린이

블로그 페이지가 '1'이고 아이에게 'a', 'b', 'c'가 있다고 가정 해 봅시다. 블로그 페이지 이름이 '2'이고 아이에게 'a', 'b', 'c'가 있습니다.

때 우리가

우리가 특정 수준의 어린이를 얻을 수있는 기회가 '1', 'a', 'b', 'c', '2', 'a', 'b', 'c'. 8 개의 페이지가 BlogPages 우리 루프? 예를 들어 '1'과 '2'만 원하면 어떻게해야합니까? BlogPage.objects.filter(depth=4) : 당신은 페이지의 트리에서 원하는 페이지의 절대 깊이를 알고있는 경우

, 당신은 같은 것을 쓸 수 있습니다 당신에게

답변

2

감사드립니다. 여기서 depth = 1은 루트 레벨입니다. depth = 2는 루트 수준에서 만든 사이트 홈 페이지입니다. depth = 3은 블로그 인덱스 페이지이고 depth = 4는 블로그 인덱스의 직접 하위 페이지 인 블로그 페이지입니다.

이 접근법은별로 강력하지 않을 수 있습니다. 블로그 색인이 다른 수준이되도록 사이트를 재구성하면 깨지기 쉬울 것입니다. 따라서 "블로그의 직접적인 하위 페이지 인 모든 BlogPages를 가져 오십시오. BlogIndexPage "를 대신 사용하십시오. 다음과 같이 할 수 있습니다.

blog_index_page = BlogIndexPage.objects.first() 
blog_pages = BlogPage.objects.child_of(blog_index_page)