检索基本页面类型的所有子级

时间:2019-05-06 22:08:28

标签: wagtail wagtail-apiv2

我正在研究Wagtail应用程序,该应用程序具有许多不同的页面类型RawHTMLLandingPage,MarketingLandingPage等,它们是基本页面LandingPageBase的子代。

如果我正确理解,则子页面类型会知道其父页面类型。但是,父母有可能通过编程方式了解其子女吗?

当我们请求着陆页时,我们还不知道它是什么类型(除了“着陆页”,直到它到达API并查询数据库为止)。

dat[apply(dat[, -1], function(x) sum(x > 30) >= 3), ]

1 个答案:

答案 0 :(得分:2)

get_page_models中有一个wagtail.core.models函数,该函数返回所有从Page派生的类,因此可以将列表过滤为仅属于给定子类的那些父母:

from wagtail.core.models import get_page_models

class LandingPageBase(Page):
    @classmethod
    def identify_children(cls):
        return [model for model in get_page_models() if issubclass(model, cls)]