Django 内容管理系统插件

Django CMS plugin

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

def render(self, context, instance, placeholder)

什么是;

对于初学者,API documentation 提供了一些提示。此外,文档还包含有关占位符和自定义插件等组件的更多详细信息。

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

因此,如果您在一个页面上有一个插件的五个实例(例如推荐),render() 将彼此独立调用五次,而 instance 是对当前插件的引用呈现的实体。

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