Wagtail块:在重写的get_context中访问上下文和请求

时间:2017-01-10 06:40:24

标签: python django wagtail

我试图从上下文中获取页面和请求,以便能够在块内使用分页。我得到的唯一背景是

  

环境{'自我':无,'价值':无}

甚至可以在流域块中进行分页吗?

class CustomStaticBlock(blocks.StaticBlock):


    def get_context(self, value):
        context = super(CustomStaticBlock, self).get_context(value)

使用

进行渲染
{% include_block block%}

2 个答案:

答案 0 :(得分:3)

来自外部页面的上下文在块模板中可用,但遗憾的是不在get_context方法中。 (这是由于模板上下文的构建方式 - get_context的结果是merged into the parent context。)这是一个已知的限制:

https://github.com/wagtail/wagtail/pull/2786#issuecomment-230416360 https://github.com/wagtail/wagtail/issues/2824

可能的解决方法是覆盖render方法(这无疑是不理想的,因为您必须重复其中的部分或全部现有render逻辑。

答案 1 :(得分:2)

现在正在工作(get_context内)。如果有人对StreamField有同样的问题,请务必将其呈现为:

{% for block in page.body %} {% include_block block %} {% endfor %}

以下内容无效(空parent_context):

{% include_block page.body %}

{{ page.body|safe }}