カスタムcmsプラグインを使用して、別のページ内でcmsページをレンダリングしようとしています。これは私のプラグインクラスです:
class PageInDiv(CMSPlugin):
page_div = models.ForeignKey(Page, verbose_name= "page")
def __unicode__(self):
return self.page_div.get_title()
ご覧のとおり、プラグインをページにリンクしてから、cms_plugins.pyにリンクします。
class PageInDivPlugin(CMSPluginBase):
model = PageInDiv
name = _("Page in div")
render_template = "page.html"
admin_preview = False
def render(self, context, instance, placeholder):
temp = loader.get_template(instance.page_div.get_template())
html = temp.render(context)
context.update({
'html': html,
'title':instance.page_div.get_title(),
'placeholder':placeholder,
})
return context
ご覧のとおり、提供されたページのhtmlをプラグインテンプレートに渡すと、プラグインテンプレートがプラグインをホストしているページ内にレンダリングされます。私が抱えている問題は、外部キーを介して選択されたページのプレースホルダーコンテンツがレンダリング(表示)されていないことです。だから私の質問は、プログラムでページプレースホルダーをレンダリングする方法はありますか?