Plugins

These are the available plugins for DjangoCMS used to add some additional contents in CMS pages.

class djangoapp_sample.plugins.blog.BlogPlugin(model=None, admin_site=None)[source]

Blog plugin select a blog to list its X last articles.

module = 'sveetch-djangoapp-sample'

Modules collect plugins of similar type

name = 'Blog last articles'

Name of the plugin needs to be set in child classes

model

alias of BlogPluginModel

form

alias of BlogPluginForm

render_template = 'djangoapp_sample/blog_plugin.html'

The path to the template used to render the template. If render_plugin is True either this or get_render_template must be defined. See also: render_plugin , get_render_template().

cache = True

Is this plugin cacheable? If your plugin displays content based on the user or request or other dynamic properties set this to False.

If present and set to False, the plugin will prevent the caching of the resulting page.

Important

Setting this to False will effectively disable the CMS page cache and all upstream caches for pages where the plugin appears. This may be useful in certain cases but for general cache management, consider using the much more capable get_cache_expiration().

Warning

If you disable a plugin cache be sure to restart the server and clear the cache afterwards.

render(context, instance, placeholder)[source]

This method returns the context to be used to render the template specified in render_template.

Parameters:
  • context (dict) – The context with which the page is rendered.

  • instance (cms.models.pluginmodel.CMSPlugin instance) – The instance of your plugin that is rendered.

  • placeholder (str) – The name of the placeholder that is rendered.

Return type:

dict or django.template.Context

This method must return a dictionary or an instance of django.template.Context, which will be used as context to render the plugin template.

By default, this method will add instance and placeholder to the context, which means for simple plugins, there is no need to overwrite this method.

If you overwrite this method it’s recommended to always populate the context with default values by calling the render method of the super class:

def render(self, context, instance, placeholder):
    context = super().render(context, instance, placeholder)
    ...
    return context
property media
value = 'BlogPlugin'