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

Posted

技术标签:

【中文标题】Django CMS 管理模板页面中的占位符【英文标题】:Django CMS manage placeholder in template pages 【发布时间】:2015-05-21 01:58:21 【问题描述】:

我希望您能在两点上提供帮助:

首先,我正在创建一些默认页面的模板,例如: “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,
    ,
,

问题是,我不能在同一个模板中多次使用同一个占位符。如果当我制作一个占位符“img-full-width”时,我可以多次调用它,那就太好了。 你有什么想法吗?一种比创建“img-full-2”、“img-full-3”等更合适的方法。

第二个问题: 是否可以添加多个 default_plugins ?真的很烦我……

非常感谢你们!

【问题讨论】:

【参考方案1】:

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,


【讨论】:

奇怪,我做了多个默认设置,但没有用。我一定是打错了,我再试一次。我很欣赏 CMS_PLACEHOLDER_CONF 的提示!非常感谢楼主! 如果答案有帮助,别忘了您可以将此答案标记为已接受的答案:-)

以上是关于Django CMS 管理模板页面中的占位符的主要内容,如果未能解决你的问题,请参考以下文章

Django-CMS - 全球占位符?

cms 之外的 Django CMS 简单占位符

从祖先继承的 Django CMS 模板不识别占位符

“渲染占位符”未出现在 django CMS 模板中

截断 Django CMS 占位符

Django-cms haystack 搜索 - 占位符内容