2010-01-11 123 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