首页 > 解决方案 > 如何在主页上显示某些 Wagtail 页面?

问题描述

我正在制作一个网站,其中应该有指向主页上特定页面的链接。我正在使用 PageChooserPanel 来执行此操作,但无法显示某些页面。这是我的代码:

模型.py

class HomePage(Page):

FeaturedPageTitle = models.CharField(
        null=True,
        blank=True,
        max_length=255,
    )
FeaturedPage = models.ForeignKey(
        'wagtailcore.Page',
        null=True,
        blank=True,
        on_delete=models.SET_NULL,
    )

content_panels = Page.content_panels + [
        MultiFieldPanel([
            MultiFieldPanel([
                FieldPanel('FeaturedPageTitle'),
                PageChooserPanel('FeaturedPage'),
            ]),
        ], 
    ]
    def pages(self):
        pages = StandardPage.objects.all()
        return pages

class StandardPage(Page)

home_page.html

{% if page.featured_page %}
{{ page.featured_page_title }}
{% for page in page.pages %}
{% image page.image %}
{{page.title}}
{% endfor %}
{% endif %}

标签: wagtail

解决方案


您已经调用了您的特色页面字段FeaturedPageTitle/ FeaturedPage,但在模板上使用了featured_page_title/ 。featured_page

在 Python 中,变量名中的大写/标点符号很重要——通常的约定是CamelCase仅对类名和underscore_case其他变量使用大写字母 ( )。


推荐阅读