可以从jinja2模板中访问对象的key_name吗?

9 投票
2 回答
9832 浏览
提问于 2025-04-16 12:59

我正在使用Python的Google App Engine,搭配webapp框架,使用jinja2模板来替代django模板。

我知道在处理方法里,可以通过下面的方式获取一个对象的key_name:

goody = object.key().name()

但是,我想知道能不能在模板逻辑中访问key_name?像这样?

{% for object in objectList %}
{{object|key_name}}
{% endfor %}

显然这样是不行的,但有没有什么过滤器或者隐藏属性,可以让我在模板里直接获取对象存储的App Engine的key_name,而不需要在处理方法里做额外的操作呢?

2 个回答

2

在Django模板中,你可以用 object.key.name 来获取App Engine数据存储对象的 键名

通常情况下,你在Python代码中是通过 object.key().name() 来访问 键名 的。

Django模板会自动尝试几种不同的方法来理解 object.key.name,从而给你返回相应的值。

10

Jinja2让你可以通过简单地使用()来执行可调用的对象,具体的说明可以参考这里的文档:http://jinja.pocoo.org/docs/templates/#other-operators

所以,这样做应该是可以的:

{% for instance in instance_list %}
   {{ instance.key().name() }}
{% endfor %}

撰写回答