django-cms在应用程序钩子中获取页面上下文

时间:2014-06-13 13:42:38

标签: django django-cms feincms

考虑一下这个cms_app.py

from django.utils.translation import ugettext_lazy as _
from cms.app_base import CMSApp
from cms.apphook_pool import apphook_pool


class FooHook(CMSApp):
    name = _("FooHook Plugin")
    urls = ["foo.urls"]

apphook_pool.register(FooHook)

foo应用程序有一个视图模型,其中包含默认的django视图,ListView和DetailView ..它们有默认模板,继承自base.html,这些是foo_list.html和foo_detail.html ..

文档完全不清楚如何在这些模板中获取,例如cms页面的侧边栏内容或页面上下文变量。

为此目的,Feincms有{% fragment %}模板标签,如何在django-cms中实现这一目标?

1 个答案:

答案 0 :(得分:2)

要访问该页面,您可以使用{{request.current_page}} 要在模板中使用插件系统,请使用{%static_placeholder my_name%}而不是{%placeholder%}标记。

最好在apphooks中使用static_placeholders,因为你不知道页面实际上有什么模板和占位符。