Bob Ralian
Bob Ralian

Reputation: 1969

Is it possible to access the key_name of an object from inside a jinja2 template?

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?

Upvotes: 9

Views: 10429

Answers (2)

Soe Thiha
Soe Thiha

Reputation: 41

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.

Upvotes: 2

Mahmoud Abdelkader
Mahmoud Abdelkader

Reputation: 24919

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 %}

Upvotes: 10

Related Questions