Is it possible to access the key_name of an object

2019-06-16 13:10发布

I'm using python google app engine with the webapp framework, substituting jinja2 templates for django templates.

I know you can get the key_name of an object from inside a handler method by calling it like so:

goody = object.key().name()

But is it possible to access the key_name from within the template logic? Something like this?

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

Obviously that doesn't work, but is there some filter or hidden attribute I can use to get at the app engine key_name an object is stored with from inside the template without extra fiddling inside the handler method?

2条回答
虎瘦雄心在
2楼-- · 2019-06-16 13:12

You can do object.key.name inside django template to access appengine datastore object's key name

Normally, you access key name in python code through object.key().name()

Django template automatically tries a few possible ways to interpret object.key.name to give you the value.

查看更多
Ridiculous、
3楼-- · 2019-06-16 13:19

Jinja2 allows you to execute callables, just by using () according to the documentation here: http://jinja.pocoo.org/docs/templates/#other-operators

So, this should work:

{% for instance in instance_list %}
   {{ instance.key().name() }}
{% endfor %}
查看更多
登录 后发表回答