我想定义一个插件,它可以在多个位置接受子插件,允许用户说明位置(很像占位符)。
请考虑以下事项:
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中。用户可能会说,在左侧放置一个图像插件,在中心放置另一个容器插件(如上图所示),右侧放置文本插件 - 这将允许动态构建复杂的嵌套布局结构。 p>
所以我想我正在寻找的是插件'占位符'的功能。
答案 0 :(得分:0)
您需要将插件嵌套2层深。首先有一个ContainerPlugin
接受Column
插件,它接受其他插件。有关示例,请参阅https://github.com/divio/djangocms-grid。