Django视图没有正确更新上下文

时间:2012-09-04 11:34:52

标签: django django-templates django-sekizai

所以我有一个自定义模板标签,这很简单。它采用视图名称,呈现它,并返回其内容。问题是,虽然对他们使用.as_view()获取内容,但似乎没有正确设置上下文,因为django-sekizai的{​​{1}} s未正确添加到主模板。 另一方面,如果我直接实例化视图并在其上调用addtoblock,则上下文将更新,.render_to_response(context).render()将块数据注入基本模板。但是,第二种方法无法正确呈现表单(sekizai执行)。有没有办法做到这一点,而不会肮脏地调用它们?

.as_view()

1 个答案:

答案 0 :(得分:0)

事实证明,继承的get()函数忽略了任何预先存在的上下文并呈现它自己的(这是逻辑的,因为视图不希望在其他视图中呈现),因此不允许{{1 }} 更新它。直接调用sekizai允许您提供上下文,因此它可以正常工作。覆盖.render_to_template()方法以接受先前的上下文并注入自己的工作。