Django wagtail 获取具有级别的页面 children
Django wagtail getting page children with levels
我的页面结构为“home_page > blog_index page > blog_page
”。博客页面可以有子页面。现在我正在尝试创建一个博客存档菜单。
假设我有一个名为“1”的博客页面,它有 children 'a'、'b'、'c'。
名为“2”的博客页面有 children 'a'、'b'、'c'。
当我们在 BlogPages 中循环时,我们有八个页面 '1', 'a', 'b', 'c', '2', 'a', 'b', 'c'.
我们有没有机会获得特定等级的children?例如,如果我只想要“1”和“2”,我该怎么办?
谢谢
如果您知道页面树中所需页面的绝对深度,您可以这样写:BlogPage.objects.filter(depth=4)
。这里depth=1是根级别; depth=2 将是在根级别创建的站点主页; depth=3 是博客索引页面,depth=4 是博客索引的直接子页面。
这种方法可能不是很可靠 - 如果您重新组织您的站点以使博客索引处于不同的级别,它就会崩溃 - 所以最好改为说 "fetch all BlogPages that are direct children of the BlogIndexPage"。您可以按如下方式进行:
blog_index_page = BlogIndexPage.objects.first()
blog_pages = BlogPage.objects.child_of(blog_index_page)
我的页面结构为“home_page > blog_index page > blog_page
”。博客页面可以有子页面。现在我正在尝试创建一个博客存档菜单。
假设我有一个名为“1”的博客页面,它有 children 'a'、'b'、'c'。 名为“2”的博客页面有 children 'a'、'b'、'c'。
当我们在 BlogPages 中循环时,我们有八个页面 '1', 'a', 'b', 'c', '2', 'a', 'b', 'c'.
我们有没有机会获得特定等级的children?例如,如果我只想要“1”和“2”,我该怎么办?
谢谢
如果您知道页面树中所需页面的绝对深度,您可以这样写:BlogPage.objects.filter(depth=4)
。这里depth=1是根级别; depth=2 将是在根级别创建的站点主页; depth=3 是博客索引页面,depth=4 是博客索引的直接子页面。
这种方法可能不是很可靠 - 如果您重新组织您的站点以使博客索引处于不同的级别,它就会崩溃 - 所以最好改为说 "fetch all BlogPages that are direct children of the BlogIndexPage"。您可以按如下方式进行:
blog_index_page = BlogIndexPage.objects.first()
blog_pages = BlogPage.objects.child_of(blog_index_page)