ドキュメントに従っているので、何が間違っているのかわかりません。ちょっとしたことだと思っています。シナリオは次のとおりです。
プラグインはテキスト スライドショー プラグインです。管理者は、スライドショーのように循環するテキストを追加できます。
モデルは次のとおりです。
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'
プラグインは次のとおりです。
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)
プラグインは問題なく動作しますが、管理者ユーザーがテキスト スライドを次のように追加すると、次のようになります。
私が走るとき
./manage.py cms list 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
走らない限り
./manage.py cms delete_orphaned_plugins
私のスライドショーは無傷のままで、正常に動作します。
テキストのスライドショー自体は問題ありません。インライン化された要素が孤立しているだけです。
助けてください。