可以从jinja2模板中访问对象的key_name吗?
我正在使用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 %}