Django CMS在父插件中嵌套了插件

时间:2017-10-16 14:25:21

标签: django plugins nested django-cms

我有一般性问题或功能要求,不确定。看起来像一个非常常见的用例,但我找不到任何有用的信息。

我正在尝试准备大约10-15个自定义“高阶”插件,这些插件将包含简单的内容:

  • 文本
  • 图像
  • 链接
  • h1-h7要素

我希望这些“高阶”在插件下拉列表中可供用户使用,当他选择一个时 - 它会自动添加带有嵌套插件的插件。

指向以下图片的链接:

所以说我有一个以下“高阶”插件列表:
image-1

另一个例子 - 让我们假设我正在创建一个看起来像这个栏的插件:
image-2

我想它会自动将多个按钮,文本和标题字段作为嵌套/子插件添加到我的父插件中。

Django CMS中是否可以轻松实现?我在google搜索嵌套插件,但找不到任何有用的信息。

1 个答案:

答案 0 :(得分:1)

您可以为占位符配置默认插件,以便处理此问题。来自docs的示例使用默认文本插件作为示例来说明这一点,使用两个链接插件创建;

CMS_PLACEHOLDER_CONF = {
    'content': {
        'name': _('Content'),
        'plugins': ['TextPlugin', 'LinkPlugin'],
        'default_plugins': [
            {
                'plugin_type': 'TextPlugin',
                'values': {
                    'body': '<p>Great websites : %(_tag_child_1)s and %(_tag_child_2)s</p>'
                },
                'children': [
                    {
                        'plugin_type': 'LinkPlugin',
                        'values': {
                            'name': 'django',
                            'url': 'https://www.djangoproject.com/'
                        },
                    },
                    {
                        'plugin_type': 'LinkPlugin',
                        'values': {
                            'name': 'django-cms',
                            'url': 'https://www.django-cms.org'
                        },
                        # If using LinkPlugin from djangocms-link which
                        # accepts children, you could add some grandchildren :
                        # 'children' : [
                        #     ...
                        # ]
                    },
                ]
            },
        ]
    }
}