Wagtail CMS 中的错误相关页面

Wrong related page in Wagtail CMS

我在使用 Wagtail CMS 1.3.1 构建博客时遇到了奇怪的行为。

有案例:

我有一个页面 A 应该与页面 B 和 C 有关系

  B
 /
A
 \
  C

这是我的页面模型的样子

# Post related page item    
class PostRelatedPage(models.Model):
    link_page = models.ForeignKey(
        'wagtailcore.Page',
        null=True,
        blank=True,
        related_name='+'
    )

    panels = [
        PageChooserPanel('link_page')
    ]

    class Meta:
        abstract = True


class PostRelatedPageItem(Orderable, PostRelatedPage):
    page = ParentalKey('core.PostPage', related_name='related_posts')


# Post page model
class PostPage(Page):
    ...

PostPage.content_panels = [
    ...
    InlinePanel('related_posts', label="Related posts"),
]

好的,看起来是正确的。 但是当我link到我的页面A相关的页面B和C时,我的页面与它自己相关

  A
 /
A
 \
  A

怎么了?

问题出在您用来输出链接的代码上:

{% for related in self.related_posts.all %}{{ related.page }}{% endfor %}

这里 related 是一个 PostRelatedPageItem 对象,related.page 指向它所附加的页面。您应该改用 related.link_page