2010-01-11 165 views
2

使用谷歌appengine和Django。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> 

什么我现在正在做的是写数据之前,数据发送到模板,看起来像

user.avatarsKey = user.avatar.key() 

Then

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

消除函数调用。我不喜欢这个,因为我必须在很多地方完成它,并开始变得混乱。有没有办法从模板中调用db对象的.key()方法?

回答

8

在django模板中,函数调用只是函数调用。在你的例子中,尝试:

{{ user.avatar.key }} 

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

{{ user.mylist.0 }} 
+1

+1正确。名单上的东西也把我扔了。 – 2010-01-11 01:44:10

+0

------- ty ------- – bobobobo 2010-01-11 02:45:35

+0

即使在avatar对象为None的情况下,它也可以工作。它不会抛出一个NoneType错误或类似的东西。惊人。 – bobobobo 2010-01-11 19:10:33