扩展django cms - 插件类 - 理解问题

时间:2014-10-01 16:51:58

标签: django django-cms

我正在阅读Extending the CMS

我在理解某些细节时遇到了一些问题:

我需要创建一个插件类。例如PollPlugin

class PollPlugin(CMSPluginBase):
  model = PollPluginModel                 # Model where data about this plugin is saved
  name = _("Poll Plugin")                 # Name of the plugin
  render_template = "polls/plugin.html"   # template to render the plugin with

  def render(self, context, instance, placeholder):
      context.update({'instance':instance})
      return context

plugin_pool.register_plugin(PollPlugin) # register the plugin

我的问题:

  1. 在这种情况下instance是什么?
  2. 这两个插件类的目标是什么? PollPluginModelPollPlugin
  3. ApphookPlugin
  4. 之间的差异

    任何答案都表示赞赏

1 个答案:

答案 0 :(得分:2)

Django-CMS插件可能有点棘手。

在这种情况下,

instance将是PollPlugin的实例。

PollPlugin用作“连接”模型,它将PollPluginModel的一个或多个实例与插件实例(PollPlugin)相关联,然后将其分配给页面上的占位符。

“apphook”是一个回调,它告诉Django-CMS它需要将视图处理交给你的app模块中的其他用户指定的URL模式。

“插件”是可以分配给占位符的模型。