Django CMS在模板页面中管理占位符

时间:2015-03-18 10:21:56

标签: django django-templates django-cms

我会在两点上得到你的帮助:

首先,我正在创建一些默认页面模板,例如: " Home.html,work-with-us.html"等

我的目标是简化负责网站的人员的工作。他们不必学习如何管理占位符内的插件。

因此,我创建了一个像这样的占位符,例如" workwithus.html" :

{% extends "base.html" %}
{% load cms_tags staticfiles sekizai_tags menu_tags %}
{% block content %}
<div class="container">

    <div class="col-xs-12">
        {% placeholder "image-full" %}
    </div>

    <div class="col-md-12">
        {% placeholder "text-platform" %}
    </div>
</div>
{% endblock content %}

我以这种方式管理插件:

CMS_PLACEHOLDER_CONF = {
'image-full': {
    'plugins': ['FilerImagePlugin'],
    'name': gettext("Image full page"),
    'default_plugins': [
        {
            'plugin_type': 'FilerImagePlugin',
            'values': {
            },
        },
    ],
    'limits': {
        'global': 1,
        'FilerImagePlugin': 1,
    },
},

问题是,我不能在同一个模板中多次使用同一个占位符。如果我做一个占位符&#34; img-full-width&#34;那将是非常好的。我可以多次打电话给它。 你有什么想法吗?一种让它更适合创造&#34; img-full-2&#34;,&#34; img-full-3&#34;等

第二个问题: 是否可以添加多个default_plugins?这真让我恼火......

非常感谢你们!

1 个答案:

答案 0 :(得分:2)

您可以拥有尽可能多的插件default_plugins

请参阅http://django-cms.readthedocs.org/en/support-3.0.x/reference/configuration.html#placeholder-default-plugins

  

您可以指定默认插件的列表   在创建占位符时自动添加(或   呈现)。

如果您对必须为每个占位符重新定义CMS_PLACEHOLDER_CONF感到恼火,则可以始终在CMS_PLACEHOLDER_CONF块之前定义公共配置:

img_fullwidth_conf = {
    'plugins': ['FilerImagePlugin', 'TextPlugin'],
    'name': gettext("Image full page"),
    'default_plugins': [
        {
            'plugin_type': 'FilerImagePlugin',
            'values': {
            },
        },
        {
            'plugin_type': 'TextPlugin',
            'values': {
                'body': '<p>Write here...</p>'
            },
        },
    ],
}

CMS_PLACEHOLDER_CONF = {
    'img-full-1': img_fullwidth_conf,
    'img-full-2': img_fullwidth_conf,
    'img-full-3': img_fullwidth_conf,

}