DjangoCMS 添加子插件按钮

DjangoCMS add childplugin button

我有人 PeoplePlugin 可以有很多子插件 PersonPlugin。我想向编辑模式添加一个按钮(添加子插件)到 PeoplePlugin 的模板,它允许我打开模态以创建新的 'PersonPlugin',就像在侧边工具栏中一样。那可能吗?谢谢。

Django CMS 提供了一个模板标签,旨在允许对您的模型进行前端编辑,通常通过 CMS 中的应用挂钩进行集成。

创建模型实例时 {% render_model_add my_model %} 将在页面中呈现一个 + 图标 (docs),例如;

<h3>
    <a href="{{ my_model.get_absolute_url }}">{{ my_model.title }}</a>
    {% render_model_add my_model %}
</h3>

这将呈现一个 h3 和您的模型的标题作为 link 到,让我们假设,它是详细视图。然后旁边是,在编辑模式下,一个 +,您可以双击它来创建 my_model 的实例。如果您不喜欢 + 图标,您也可以使用 render_model_add_block,它允许自定义标记形成 link 添加表单。

这非常适合应用程序中的模型,但如果用于插件可能会出现问题,因为这种简单的实现不会创建带有占位符 link 的插件或您在创建时可能得到的其他东西通过占位符的插件。

另一个为您的模型带来前端编辑的元素是 {% render_model my_model "attr" %} (docs),它将在上下文中向用户呈现该模型实例的属性,如果您处于编辑模式, 允许您双击它来编辑 object.

这种编辑的一个例子是联系信息模型;

{% render_model_block contact_info %}
    <h2>{{ instance.contact_modal_heading }}</h2>
    <ul>
        <li>
            <strong>Phone:</strong> <a href="tel:{{ instance.phone }}">{{ instance.phone }}</a>
        </li>
        <li>
            <strong>Email:</strong> <a href="mailto:{{ instance.email }}">{{ instance.email }}</a>
        </li>
    </ul>
{% endrender_model_block %}

<div>
    {% render_placeholder contact_info.contact_content 500 %}
</div>