Django cms在父模板中获取内容变量
问题描述:
假设我有一个内容插件,它将一个变量{{ category }}
添加到插件的上下文中。Django cms在父模板中获取内容变量
插件可以在占位符内呈现零次或多次。我不关心检索哪个变量,但我想从父模板访问它,例如,
plugin.html
<div class="widget">
{{ category }}
</div>
home.html的
{% extends "base.html" %}
<h1>{{ category }}</h1> <!-- I want the optional variable here -->
<div class="main">
{% placeholder content %}
</div>
我知道feincms使用一种称为 “片段”,可以追加和请求对象内检查变量的模板标签,但似乎django-cms没有这样的系统,那么做到这一点的正确方法是什么?
我试图将它添加到插件中的会话;
def render(self, context, instance, placeholder):
...
request = context['request']
request.session['category'] = instance.category
...
这只刷新页面后工作,但是,其他变量是“一个页面背后” ......
答
既然你想它的allmost每个模板,也许创建您自己的背景处理器,并将其添加到settings.TEMPLATE_CONTEXT_PROCESSORS
?
# yourapp.filename.py
def context_processor(request):
category = ...
return {
"category": category,
}
,并添加以下行settings.TEMPLATE_CONTEXT_PROCESSORS
yourapp.filename.context_processor