HTML模板中的wagtail页面模型引用



根据Wagtail源代码,

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

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

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

pageself在使用标准Django模板引擎时确实有效。然而,self是Jinja2模板引擎中的保留词,因此文档鼓励page保持一致性(并使开发人员在未来更容易切换到Jinja2(如果他们愿意的话))。

为了记录在案,以下是引入替代变量名称的PR:https://github.com/wagtail/wagtail/pull/1571

最新更新