다른 플러그인을 어셈블 할 수있는 Django CMS 사용자 정의 플러그인을 만들려고합니다. Django CMS는 Plugin 중첩을 사용하여이 작업을 수행 할 수 있으며 예제를 따라 간단한 테스트 케이스를 작성했습니다.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)