jinja2 无法读取自身

发布于 2024-12-22 11:08:47 字数 166 浏览 0 评论 0原文

我已经使用 django 一段时间了,现在正在转换为 jinja2,因为 GAE 也告诉了我。我用于 django 的快捷方式之一是在渲染模板时将“self”传递给 django,以便在我的模板中调用 {{ self.stuff }}。在神社里,“自我”似乎代表着某种东西。这是否需要我更改所有模板以使用“this”?

I have been using django for a while and I am now converting to jinja2 because GAE told me too. One of the short cuts I use for django is to pass "self" to django when rendering my template so that in my template I call {{ self.stuff }}. In jinja it seems that "self" represents something. Does this require me to change all my templates to use perhaps "this"?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

乜一 2024-12-29 11:08:47

Jinja2 实际上使用 self 来允许您引用块:

<!-- In your layout.html file -->
<title>{%- block title %}{% endblock %}</title>
<!-- Some distance further down ... -->
<h1>{{self.title()}}</h1>

<!-- In a file that extends layout.html -->
{% block title %}The Title of the Page{% endblock %}

<!-- The above will render -->
<title>The Title of the Page</title>
<!-- Some other stuff ... -->
<h1>The Title of the Page</h1>

只需使用另一个名称,一切都会起作用(即,使用 this 而不是 self或 @Skirmantas 建议的 obj )。

self is actually used by Jinja2 to allow you to reference blocks:

<!-- In your layout.html file -->
<title>{%- block title %}{% endblock %}</title>
<!-- Some distance further down ... -->
<h1>{{self.title()}}</h1>

<!-- In a file that extends layout.html -->
{% block title %}The Title of the Page{% endblock %}

<!-- The above will render -->
<title>The Title of the Page</title>
<!-- Some other stuff ... -->
<h1>The Title of the Page</h1>

Simply use another name and everything will work (i.e., rather than self use this or obj as suggested by @Skirmantas).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文