Вложение плагина Django CMS --- дочерний элемент не отображается в интерфейсе структуры

Я пытаюсь создать собственный плагин Django CMS, который может собирать другие плагины. Насколько я могу судить, Django CMS может сделать это, используя вложение плагинов, и я следовал примерам, чтобы создать простой тестовый пример.

Я ожидаю, что когда вы перейдете на вкладку "Структура" для записи в модели, которая имеет PlaceholderField, который включает родительский плагин, при добавлении родительского плагина всплывающее окно для этой модели также должно иметь какой-либо способ редактирования / создать / добавить экземпляр дочернего плагина. Но это не --- все, что я вижу, это поля для родительского плагина и НИЧЕГО о детях (см. Скриншот ниже).

Или я упускаю смысл вложения плагинов полностью?

models.py:

from django.db import models
from cms.models import CMSPlugin
from cms.models.fields import PlaceholderField
from djangocms_text_ckeditor.models import AbstractText

class CustomPlugin(CMSPlugin):
    title = models.CharField('Title', max_length=200, null=False)
    placeholder_items = PlaceholderField ('custom-content')
    renderer = models.CharField('Renderer', max_length=50, null=True, blank=True,
        help_text='This is just to show that a custom renderer CAN be done here!')

class ChildTextPlugin(AbstractText):
    pass

cms_plugins.py:

from cms.plugin_base import CMSPluginBase
from cms.plugin_pool import plugin_pool
from django.utils.translation import ugettext as _
from .models import CustomPlugin, ChildTextPlugin

class CMSCustomPlugin(CMSPluginBase):
    model = CustomPlugin
    name = _('Custom Plugin')
    render_template = 'custom/custom_plugin.html'
    allow_children = True

    def render(self, context, instance, placeholder):
        context = super(CMSCustomPlugin, self).render(context, instance, placeholder)
        return context

class CMSChildTextPlugin(CMSPluginBase):
    model = ChildTextPlugin
    name = _('Child Text Plugin')
    render_template = 'custom/child_text_plugin.html'
    parent_classes = ['CMSCustomPlugin',]

    def render(self, context, instance, placeholder):
        context = super(ChildTextPlugin, self).render(context, instance, placeholder)
        return context

plugin_pool.register_plugin(CMSCustomPlugin)
plugin_pool.register_plugin(CMSChildTextPlugin)

Разве не должно быть где-нибудь интерфейса, который мог бы получить доступ к ChildTextPlugin

1 ответ

... и ответ "он работал все время" --- интерфейс появляется ПОСЛЕ отправленного мной выше экрана, на который отправлено сообщение --- запись Custom Plugin будет иметь значок "+", и это ТАМ, что дети найдены.

Другие вопросы по тегам