【发布时间】:2017-09-02 23:57:22
【问题描述】:
使用 Wagtail CMS,模仿 Django CMS 的“插件”功能的最佳方式是什么?
在 Django CMS 中,我可以编写一个custom plugin,它可以显示一个模板以及该模型的任何相关信息。然后,内容管理员可以将该插件添加到站点上任何位置的占位符。
对于 Wagtail,我能找到最接近的东西是 Snippet,但每次使用 Snippet 时,都必须将它专门包含在 Page 模型中。
以这两个模型为例:
class Pet(models.Model):
species = models.CharField(max_length=10)
name = models.CharField(max_length=100)
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=100)
为了让内容管理器能够访问这些,我需要将它们注册为 sn-ps,然后像这样列出该页面模型中的每个模型:
class HomePage(Page):
content_panels = Page.content_panels + [
SnippetChooserPanel('pet'),
SnippetChooserPanel('book'),
]
Wagtail 有没有更好的方法来做到这一点?
【问题讨论】: