如何将插件限制为它创建的页面

时间:2018-04-20 08:04:05

标签: django django-cms

我通过扩展CMSPluginBase创建了一个django cms插件, 但是,当我将其添加到页面时,它也显示为所有其他页面上的建议。例如,如果我有一个图像插件,我将其添加到页面,我不希望看到该图像显示在所有其他页面上。

无论如何我无法将插件绑定到在docs中创建的页面。

1 个答案:

答案 0 :(得分:0)

插件是通用的,重点是默认情况下您可以将它们添加到任何位置,因为在构建可能提供所需功能或功能的页面时。但是,您可以使用CMS_PLACEHOLDER_CONF设置限制占位符中显示的插件。

因此,简单的解决方案是定义所有占位符&您使用CMS_PLACEHOLDER_CONF在其中允许的插件。例如;

CMS_PLACEHOLDER_CONF = {
    'audio': {
        'plugins': ['AudioPlugin', ],
        'name': gettext("Audio"),
    },
    'content': {
        'plugins': [
            'LinkPlugin', 'TextPlugin',
        ],
        'text_only_plugins': [
            'AudioTextPlugin', 'FilePlugin', 'LinkPlugin', 'QuoteTextPlugin',
            'VideoTextPlugin'
        ],
        'name': gettext("Content"),
    },
    'gallery': {
        'plugins': ['ImageGalleryCMSPlugin', ],
        'name': gettext("Image galleries"),
    }
}

如果您想确保某个插件只出现在某个占位符的某个页面上,那么您可以创建一个特定的模板。