我想在Django-CMS安装的每个子页面的页脚中显示一个about-page的摘录。
实现这一目标的最佳方法是什么?我无法在Google或此处找到现成的解决方案。
我知道Django博客很容易摘录,比如zinnia或cmsplugin-blog;但我不愿意将这个页面变成博客条目。
答案 0 :(得分:0)
我写了这个模板标签,显示了所需页面中的某个CMSPlugin
。
from cms.models.pagemodel import Page
@register.simple_tag
def page_excerpt(page_id, slot=None, position=0):
page = Page.objects.get(reverse_id=page_id, publisher_is_draft=False)
if slot is None:
placeholder = page.placeholders.all()[0] # by default, take the first one.
else:
placeholder = page.placeholders.filter(slot=slot)[0]
cmsplugin = placeholder.cmsplugin_set.order_by('position')[position]
return cmsplugin.render_plugin()
模板标记采用page-id,占位符的名称以及CMSPlugin
作为参数的位置。所以我可以为模板中的摘录设置一个特殊的占位符和/或只使用现有占位符的第一个或第二个CMSPlugin
。
可能的改进: