如何在主页上显示子页面的子页面? (W / Django)

时间:2019-12-08 23:30:15

标签: python django wagtail

我正在使用Wagtail构建一个简单的博客应用程序。 我试图在主页上显示博客文章列表。当我在博客页面上将它们显示为直接父对象时,它会很好地工作;但是,当我想在主页上执行相同操作,从而使父对象的父辈卡住时,效果很好。

页面的树结构如下:

1. Home:
   1.1 Blog
     1.1.1 Post1
     1.1.2 Post2
   1.2 About 

我尝试添加get_context方法:

class HomePage(Page):
    templates = "home/home_page.html"

    def get_context(self, request):
        context = super().get_context(request)
        context['strony'] = BlogPage.get_children(self)
        return context

但是,此代码不返回博客文章列表,而是返回主页子级的列表-因此,博客和关于页面。

我在哪里弄错了?

2 个答案:

答案 0 :(得分:1)

很难确定是否看不到更多代码,但我认为您需要类似的东西:

library(tidyverse)
df %>% group_by(id, type, price) %>% 
  mutate(Less2 = case_when(price <= 2 ~ cumsum(number_of_book)),
                                            Three_Five = case_when(price %in% 3:5 ~ cumsum(number_of_book)),
                                            Five_six = case_when(price %in% 5:6 ~ cumsum(number_of_book)),
                                            More_six = case_when(price >6 ~ cumsum(number_of_book))) %>% 
  replace(is.na(.),0) %>% 
  ungroup(.) %>% 
  group_by(id, type) %>% 
  summarise_at(vars(Less2:More_six), ~sum(.)) %>%
  ungroup(.) %>%
  group_by(id) %>%
  mutate_at(vars(Less2:More_six), ~ replace_na(./sum(.), 0)) 

# A tibble: 6 x 6
# Groups:   id [3]
  id    type  Less2 Three_Five Five_six More_six
  <chr> <chr> <dbl>      <dbl>    <dbl>    <dbl>
1 1     X       100          0      0      100  
2 1     Y         0        100    100        0  
3 2     X         0          0     33.3    100  
4 2     Y         0          0     66.7      0  
5 3     X        50          0      0       28.6
6 3     Y        50          0      0       71.4
```

答案 1 :(得分:0)

非常感谢!它有效,但不适用于BlogPage,但适用于PostPage.Objects.All()