2017-10-18 122 views
1

我有一個頁面結構爲'home_page > blog_index page > blog_page'。而博客頁面可以有子頁面。現在我正在嘗試創建一個博客歸檔菜單。假設我有一個名爲'1'的博客頁面,它有孩子'a','b','c'。 和博客頁面名爲'2',它有孩子'a','b','c'。Django w getting頁面獲得兒童級別

當我們環路BlogPages我們有八頁爲'1', 'a', 'b', 'c', '2', 'a', 'b', 'c'.

有,我們讓孩子們與特定水平的任何機會呢?例如,如果我只想'1'和'2',我該怎麼辦?

謝謝

回答

2

如果你知道你想要的頁面樹中的頁面的絕對深度,你可以寫類似:BlogPage.objects.filter(depth=4)。這裏depth = 1是根級;深度= 2將是在根級創建的網站主頁;深度= 3將是博客索引頁面,深度= 4將是博客索引的直接子節點的博客頁面。

這種方法可能不是很健壯 - 如果您重新組織您的網站以便博客索引處於不同的級別,它將會中斷 - 因此,最好說「獲取所有的直接子項的BlogPages BlogIndexPage「來代替。你可以這樣做:

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