Django cms在父模板中获取内容变量

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