Django CMS插件

时间:2015-06-01 18:36:44

标签: django django-cms

在编写插件时,文档声明您必须定义一个继承自CMSPluginBase的类,并且您可以在上下文中传递信息。我的问题是render()函数中传递的参数是什么;

def render(self, context, instance, placeholder)

是什么;

  • 实例

  • 占位符

1 个答案:

答案 0 :(得分:3)

首先,API documentation提供了一些提示。此外,文档还提供了有关占位符和自定义插件等组件的更详细信息。

<强> instance
这是您的插件的当前实例。想象一下,您已经创建了一个Django CMS插件,可以在您的网站上呈现推荐。它提供了上传推荐图像,名称和报价的字段。您可以在每个页面上拥有此插件的多个实例,因此instance参数保存当前呈现的数据。

因此,如果页面上有一个插件的五个实例(例如推荐),render()将相互独立调用五次,instance是对当前渲染实体的引用

<强> placeholder
在模板中,您可以定义多个占位符,例如my_left_sidebarthe_footermain_content等。通过placeholder变量,您可以检查当前实例呈现的占位符。