如何编写跳转分支并重定向到 wagtail 中特定页面的模板?

问题描述 投票:0回答:1

树形结构如下,如何编写一个从“section 1”跳转到“discussion a”所有sections的模板?

我正在使用主题 1,2...等作为组织页面并在我的讨论页面中进行导航。我认为这可以使用 page.get_parent 跳转主题和 page.get_siblings 跳转讨论来完成。

wagtail 模板可以跳转到特定模型吗?也许我可以有一个独特的模型只用于讨论 a 并让第 1,2 节......等自动跳转到其分支中的相应讨论?

Section 1
    topic 1
        discussion a: “why are tree’s blue?”
        discussion b
    topic 2
Section 2
    topic 1
        discussion a “why are tree’s yellow?”

我试过 page.get_decendents 但它只是列出了树枝下面的所有内容。我正在考虑使用片段,但任何主题都可以有很多讨论,任何部分都可以有很多主题。我选择这种方法是因为它是自动的。

wagtail
1个回答
0
投票

如果你有一个单独的讨论页面模型,你会这样做,使用页面查询集上的

type
函数。请参阅Wagtail 页面查询集文档

如果你的模型结构如下:

class DiscussionPage(Page):
    # ...

class SectionPage(Page):
    # ...

然后你可以有一个函数可以像这样获得第一个讨论的后代:

class DiscussionPage(Page):
    # ...

class SectionPage(Page):
    # ...
    def get_first_discussion_page(self):
        return self.get_descendants().type(DiscussionPage).specific().first()

唯一需要注意的是

type
只接受一个类作为参数,因此必须在使用它之前定义它。

在您的模板中,您可以根据需要调用

get_first_discussion_page

© www.soinside.com 2019 - 2024. All rights reserved.