HTML 模板中的 wagtail 页面模型参考
wagtail page model reference in HTML template
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
呢?我没有在任何源代码中看到这一点。
page
和self
在使用标准Django模板引擎时确实有效。但是,self
是 the Jinja2 template engine 中的保留字,因此文档鼓励 page
保持一致性(并使开发人员在将来选择时更容易切换到 Jinja2)。
作为记录,这里是引入替代变量名称的 PR:https://github.com/wagtail/wagtail/pull/1571
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
呢?我没有在任何源代码中看到这一点。
page
和self
在使用标准Django模板引擎时确实有效。但是,self
是 the Jinja2 template engine 中的保留字,因此文档鼓励 page
保持一致性(并使开发人员在将来选择时更容易切换到 Jinja2)。
作为记录,这里是引入替代变量名称的 PR:https://github.com/wagtail/wagtail/pull/1571