문서를 읽었을 때 내가 뭘 잘못하고 있는지 알지 못합니다. 나는 그것이 작은 것이다고 생각하고있다. 다음은 시나리오입니다.Django CMS Plugin이 Inline InclusionTag를 사용하여 Orphaned Plugin을 생성합니다.
플러그인은 텍스트 슬라이드 쇼 플러그인입니다. 관리자는 슬라이드 쇼처럼 순환 할 텍스트를 추가 할 수 있습니다. 때
class TextSlideshowPlugin(CMSPluginBase):
model = TextSlideshow
name = _("Text Slideshow")
render_template = "text_slideshow.html"
inlines = [TextSlideInline,]
module = _("Slideshow")
def __init__(self, model=None, admin_site=None):
super(TextSlideshowPlugin, self).__init__(model=model,
admin_site=admin_site)
for inline in self.inlines:
inline.placeholder = self.placeholder
inline.page = self.page
def render(self, context, instance, placeholder):
slides = instance.text_slides.all().order_by('index')
context.update({
'model': instance,
'placeholder': placeholder,
'slides': slides
})
return context
plugin_pool.register_plugin(TextSlideshowPlugin)
플러그인 작품과 완벽한 실행되지만 :
class TextSlideshow(CMSPlugin):
label = models.CharField(max_length=128)
interval = models.IntegerField(
default=5000,
help_text=_('milliseconds between slides. (1000 equals 1 second)'))
def copy_relations(self, oldinstance):
for slide in oldinstance.text_slides.all():
slide.pk = None
slide.id = None
slide.text_slide_show = self
slide.save()
def __unicode__(self):
return self.label
class TextSlide(CMSPlugin):
text_slide_show = models.ForeignKey(TextSlideshow, related_name="text_slides")
display_value = models.CharField(max_length=128)
index = models.IntegerField(verbose_name=_("Display order"))
인라인은 다음과 같습니다 :
class TextSlideInline(admin.StackedInline):
model = TextSlide
fk_name = 'text_slide_show'
플러그인은
모델
은 다음과 같습니다 관리자는 다음과 같은 텍스트 슬라이드를 추가합니다. 내가./manage.py cms list plugins
을 실행하면
나는이 결과를 얻을 : 만큼 내가 전술에 남아있을 것입니다
./manage.py cms delete_orphaned_plugins
내 슬라이드 쇼를 실행하지 않고 잘 작동으로
==== Plugin report ====
There are 2 plugin types in your database
ERROR : not installed
instance(s): 2
TextSlideshowPlugin
model : cmsslideshow.models.TextSlideshow
instance(s): 1
.
텍스트 슬라이드 쇼 자체는 문제가 없으며, 고아 인 인라인 요소 일뿐입니다.
도와주세요.