HTML 模板中的 wagtail 页面模型参考

wagtail page model reference in HTML template

根据Wagtail source code,

class Page(AbstractPage, index.Indexed, ClusterableModel, metaclass=PageBase):
  def get_context(self, request, *args, **kwargs):
        context = {
            PAGE_TEMPLATE_VAR: self,
            'self': self,
            'request': request,
        }

        if self.context_object_name:
            context[self.context_object_name] = self

        return context

默认情况下,wagtail Page 模型的任何子类都可以在其 HTML 模板中使用 self & request

但是,在official doc中,为什么我们可以在{% load wagtailcore_tags %}之后使用page.body而不是self.body呢?我没有在任何源代码中看到这一点。

pageself在使用标准Django模板引擎时确实有效。但是,selfthe Jinja2 template engine 中的保留字,因此文档鼓励 page 保持一致性(并使开发人员在将来选择时更容易切换到 Jinja2)。

作为记录,这里是引入替代变量名称的 PR:https://github.com/wagtail/wagtail/pull/1571