【发布时间】:2021-03-09 12:06:32
【问题描述】:
我的用例是需要从给定的插件中呈现 pdf,尽管该功能也可能用于搜索索引组合。
【问题讨论】:
标签: python django-cms
我的用例是需要从给定的插件中呈现 pdf,尽管该功能也可能用于搜索索引组合。
【问题讨论】:
标签: python django-cms
在 django CMS 代码库中有 cms.templatetags.render_alias_plugin,其中的代码并不简单,但在剥离后会如下所示:
def render_plugin(plugin: CMSPlugin, request: HttpRequest) -> str:
plugins = plugin.get_descendants().order_by('placeholder', 'path')
plugins = [plugin] + list(plugins)
plugins = downcast_plugins(plugins, request=request)
plugins = list(plugins)
plugins[0].parent_id = None
plugins = build_plugin_tree(plugins)
renderer = get_toolbar_from_request(request).content_renderer
html: str = renderer.render_plugin(
instance=plugins[0],
context={'request': request},
editable=False,
)
return mark_safe(html)
cms_plugin = CMSPlugin.objects.get(id=cms_plugin_id)
render_plugin(cms_plugin, request)
如果需要,也可以伪造 http 请求,可以在 here 找到一个示例。
【讨论】: