gpt4 book ai didi

python - 在另一个页面中渲染 cms 页面

转载 作者:行者123 更新时间:2023-12-01 06:09:53 24 4
gpt4 key购买 nike

我正在尝试使用自定义 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 传递给插件模板,然后插件模板将在托管插件的页面中呈现。我遇到的问题是通过外键选择的页面中的占位符内容没有被渲染(显示)。所以我的问题是,有没有办法以编程方式呈现页面占位符?

最佳答案

暂时忽略创建自定义插件来执行您所描述的操作(即以编程方式呈现页面的占位符)的想法,以下可能是一个可行的替代方案,具体取决于您想要实现的目标。 ..

您应该能够仅在“外部”cms 页面(即您想要在其中显示另一个 cms 页面内容的页面)的模板中,访问当前页面,如下所示:

{{ request.current_page }}

这是凭借cms页面中间件。因此,更进一步,您应该能够像这样访问页面的占位符:

{% for placeholder in request.current_page.placeholders %}
{{ placeholder.render }}
{% endfor %}

这是在另一个页面“内部”呈现页面占位符的一种方法。

关于python - 在另一个页面中渲染 cms 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6444825/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com