python - Wagtail 自定义内联 PageChooser

标签 python django database wagtail

目前我遇到一个奇怪的问题,使用 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_pa​​ges }} 输出“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/

相关文章:

python - 使用 Python 进行 MQTT 响应

Python:获取分割图中每个簇的边界框坐标(2D numpy 数组)

python - 使用 Pandas 删除值中不包含字符串的行

mysql - 在 Yii 中查询大数据?

python - tkinter:无法使框架可滚动

django - 带 django 的侧边栏、布局或 View ?

python - celery 任务未在 Django 数据库中注册

css - 我是否必须使用 Compass 来使用 Django-Grappelli 修改 CSS?

mysql - 在这种情况下我应该使用分区吗

java - 如何使用方法执行以下操作?