функция вызова шаблона django - PullRequest
2 голосов
/ 11 января 2010

Использование google appengine и django.

Всякий раз, когда у меня есть db.ReferenceProperty () внутри модели, например:

class User( db.Model ) :
    name = db.StringProperty()
    avatar = db.ReferenceProperty( dbImage )

Так что, когда я выкладываю страницу пользователя, в шаблоне django я не могу сделать

<div>
    <span>{{ user.name }}</span>
    <span>{{ user.avatar.key() }}</span>
</div>

Сейчас я пишу немного кода на Python, прежде чем данные отправляются в шаблон, который выглядит как

user.avatarsKey = user.avatar.key()

Тогда

<div>
    <span>{{ user.name }}</span>
    <span>{{ user.avatarsKey }}</span>
</div>

исключение вызова функции. Мне это не нравится, потому что я должен делать это во многих местах, и это начинает становиться беспорядочным. Есть ли способ вызвать метод .key () объекта db из шаблона?

1 Ответ

8 голосов
/ 11 января 2010

В шаблонах django вызов функции - это просто получение функции. в вашем примере попробуйте:

{{ user.avatar.key }}

Я знаю, это странно. Но эй, это еще хуже с массивами / списками:

{{ user.mylist.0 }}
...