【问题标题】:wagtail page model reference in HTML templateHTML 模板中的 wagtail 页面模型参考
【发布时间】:2021-10-09 04:49:29
【问题描述】:

根据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?我没有在任何源代码中看到这一点。

【问题讨论】:

    标签: wagtail


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-21
      • 2020-05-03
      • 2019-01-21
      • 1970-01-01
      • 2017-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多