Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 334
Bob Ralian Avatar asked Feb 03 '23 20:02

Bob Ralian


2 Answers

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 %}
like image 92
Mahmoud Abdelkader Avatar answered Feb 05 '23 15:02

Mahmoud Abdelkader


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.

like image 31
Soe Thiha Avatar answered Feb 05 '23 16:02

Soe Thiha