2016-12-07 2 views
0

다른 플러그인을 어셈블 할 수있는 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) 

Shouldn't there be an interface somewhere that can access ChildTextPlugin ???

답변

0

... 그리고 대답은 "이 모든 시간을 일하고 있었다"--- 인터페이스는 위에 게시 된 화면이 제출 된 후 제공됩니다. 사용자 정의 플러그인 항목에는 "+"아이콘이 표시되며 하위 항목도 있습니다.