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
。
我在使用 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
。