【问题标题】:Django-cms Define Locations for Nested PluginsDjango-cms 定义嵌套插件的位置
【发布时间】:2016-05-28 09:46:48
【问题描述】:

我想定义一个插件,它可以在多个位置接受子插件,允许用户声明位置(很像占位符)。

考虑以下几点:

plugins.py

from cms.plugin_base import CMSPluginBase
from cms.plugin_pool import plugin_pool
from cms.models.pluginmodel import CMSPlugin
from django.utils.translation import ugettext_lazy as _
class Container_Md_4_4_4(CMSPluginBase):
    model = CMSPlugin
    render_template = "plugins/container_md_4_4_4.html"
    cache = False
    allow_children = True
    name = _("Container Plugin, Md, 4-4-4")
plugin_pool.register_plugin(Container_Md_4_4_4)

插件/container_md_4_4_4.html

{% load cms_tags %}
<div class="col-md-4">
    <-- WANT CHILD PLUGIN TO OPTIONALLY GO HERE -->
</div>
<div class="col-md-4">
    {% for plugin in instance.child_plugin_instances %}
        {% render_plugin plugin %}
    {% endfor %}
</div>
<div class="col-md-4">
    <-- WANT CHILD PLUGIN TO OPTIONALLY GO HERE -->
</div>

所以在上面的模板中,所有子插件都放在中心 div 中,但我希望用户能够将子插件放在左侧 div 或右侧 div 中。用户可能会说,将一个图像插件放在左侧,另一个容器插件(如上图)放在中间,将文本插件放在右侧——这将允许动态构建复杂的嵌套布局结构。

所以我想我正在寻找的是插件“占位符”的功能。

【问题讨论】:

    标签: django plugins django-cms


    【解决方案1】:

    您需要将插件嵌套 2 层。首先有一个ContainerPlugin 接受Column 插件,它接受其他插件。示例见https://github.com/divio/djangocms-grid

    【讨论】:

    猜你喜欢
    • 2018-03-28
    • 2015-09-09
    • 2012-10-10
    • 2012-05-26
    • 2014-04-12
    • 1970-01-01
    • 2015-03-12
    • 2013-06-04
    • 2013-04-05
    相关资源
    最近更新 更多