django模板调用函数

bob*_*obo 2 django google-app-engine templates

使用谷歌appengine和django.

每当我在模型中有一个db.ReferenceProperty()时:

class User( db.Model ) :
    name = db.StringProperty()
    avatar = db.ReferenceProperty( dbImage )
Run Code Online (Sandbox Code Playgroud)

因此,在推出用户页面时,在django模板中我无法做到

<div>
    <span>{{ user.name }}</span>
    <span>{{ user.avatar.key() }}</span>
</div>
Run Code Online (Sandbox Code Playgroud)

我现在正在做的是在数据输出到看起来像的模板之前编写一些python代码

user.avatarsKey = user.avatar.key()
Run Code Online (Sandbox Code Playgroud)

然后

<div>
    <span>{{ user.name }}</span>
    <span>{{ user.avatarsKey }}</span>
</div>
Run Code Online (Sandbox Code Playgroud)

消除函数调用.我不喜欢这样,因为我必须在很多地方这样做,并且它开始变得杂乱无章.有没有办法从模板内部调用db对象的.key()方法?

pav*_*kha 8

在django模板中,函数调用只是函数获取.在您的示例中,尝试:

{{ user.avatar.key }}
Run Code Online (Sandbox Code Playgroud)

我知道,这很奇怪.但是,嘿,阵列/列表更糟糕:

{{ user.mylist.0 }}
Run Code Online (Sandbox Code Playgroud)