目前我遇到一个奇怪的问题,使用 wagtail。我修改了文档中的一个片段。但似乎我错过了什么。这是我的代码...
目标是允许使用 PageChooser 选择多个页面(并可能稍后在模板中显示链接)
class BlogPage(Page):
content_panels = Page.content_panels + [
MultiFieldPanel([
InlinePanel('related_pages', label="Related Pages"),
])
]
class BlogPageRelated(Orderable):
page = ParentalKey('home.BlogPage', on_delete=models.CASCADE, related_name='related_pages')
relpages = models.ForeignKey(
'wagtailcore.Page', on_delete=models.CASCADE, related_name='+', blank=True, null=True
)
panels = [
PageChooserPanel('relpages', 'home.BlogPage'),
]
数据库中充满了数据。似乎没有数据传送到模板。模板变量 {{ page.related_pages }} 输出“home.BlogPageRelated.None”。
{{ page.related_pages }} = home.BlogPageRelated.None
为了更好地理解这是我采用的片段 - (!) 效果很好!
class BlogPageImage(Orderable):
page = ParentalKey(BlogPage, on_delete=models.CASCADE, related_name='gallery_images')
image = models.ForeignKey(
'wagtailimages.Image', on_delete=models.CASCADE, related_name='+'
)
panels = [
ImageChooserPanel('image'),
]
最佳答案
最后我自己得到了解决方案。这种内联元素有点奇怪,恕我直言,有点不透明。 Nvm,Wagtail 值得麻烦。
我的内联模型:
class RelatedPage(models.Model):
page = ParentalKey(BlogPage, on_delete=models.CASCADE, related_name='relpages', default=None)
relpage = models.ForeignKey(
'wagtailcore.Page', on_delete=models.CASCADE, related_name='+'
)
panels = [
PageChooserPanel('relpage', 'home.BlogPage'),
]
我的模板:
{% for x in page.relpages.all %}
<a href="{% pageurl x.relpage %}">ax {{ x.specific.title }}</a>
{% endfor %}
我错过了“...page.relpages.all ...”中的“all”
关于python - Wagtail 自定义内联 PageChooser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50198539/