【发布时间】:2019-02-06 12:07:24
【问题描述】:
在我的Wagtail 网站中,我有一种方法可以将“链接页面”列表添加到页面,以显示相关页面、文章等的列表:
from django.db import models
from modelcluster.fields import ParentalKey
from wagtail.core.models import Orderable
from wagtail.admin.edit_handlers import PageChooserPanel
class LinkedPage(Orderable):
target_page = models.ForeignKey('wagtailcore.Page',
null=True,
blank=False,
on_delete=models.SET_NULL,
verbose_name='Page',
related_name='+')
panels = [
PageChooserPanel('target_page', [
'articles.ArticlePage',
'myapp_core.ContentPage',
]),
]
class Meta:
abstract = True
ordering = ['sort_order']
class ContactPageLinkedPage(LinkedPage):
host_page = ParentalKey('myapp_core.ContactPage',
related_name='linked_pages')
然后我可以从ContactPage 模型中获取可公开查看的链接页面列表:
from wagtail.core.models import Page
class ContactPage(Page):
# ...
def get_linked_pages(self):
public_pages = Page.objects.live().public()
pages = self.linked_pages.filter(target_page__in=public_pages)
return [lp.target_page for lp in pages]
正常查看页面时,这一切正常。但是当尝试预览联系页面时,我得到一个 ValidationError:
["'Root'值必须是整数。"]
这发生在get_linked_pages() 中以pages = ... 开头的行。 Here's the traceback.
我猜测这可能是与模型集群相关的问题,例如 this one 我有一段时间了,但我还没有弄清楚如何解决它。
【问题讨论】:
标签: wagtail