Можно ли получить доступ к key_name объекта из шаблона jinja2? - PullRequest
8 голосов
/ 04 марта 2011

Я использую python google app engine со структурой webapp, заменяя шаблоны jinja2 на шаблоны django.

Я знаю, что вы можете получить имя_ключа для объекта из метода-обработчика, вызвав его так:

goody = object.key().name()

Но возможно ли получить доступ к key_name из логики шаблона?Что-то вроде этого?

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

Очевидно, что это не работает, но есть ли какой-то фильтр или скрытый атрибут, который я могу использовать, чтобы получить в механизме приложения имя_ключа, с которым объект сохраняется изнутри шаблона без лишних хлопотвнутри метода обработчика?

Ответы [ 2 ]

8 голосов
/ 04 марта 2011

Jinja2 позволяет вам выполнять вызовы, просто используя () в соответствии с документацией здесь: http://jinja.pocoo.org/docs/templates/#other-operators

Итак, это должно работать:

{% for instance in instance_list %}
   {{ instance.key().name() }}
{% endfor %}
2 голосов
/ 20 июля 2011

Вы можете сделать object.key.name внутри шаблона django, чтобы получить доступ к имени ключа

объекта хранилища данных appengine.

Обычно вы получаете доступ к имени ключа в коде Python через object.key().name()

Шаблон Django автоматически пробует несколько возможных способов интерпретации object.key.name, чтобы дать вам значение.

...