2013-03-23 28 views
0

我在App Engine中創建了一個博客,目前我正在爲blogpost添加評論支持。 我做了一個db.ListProperty(db.Key)來存儲發佈到該特定帖子的每條評論的密鑰。使用密鑰從Jinja獲取GAE實體

問題是,我試圖在我的模板中做到這一點,我不能在那裏使用db.get。

例如,爲了能夠從神社像做「Comment.get(鍵)」

你有任何其他的解決方案如何我的模板內這樣做,或做我必須移動的函數列出我的博客帖子遠離我的模板,並將其作爲kwarg傳遞給它?

謝謝

+0

你絕對應該在模板之外做它。如何將它添加到列表中,將它傳遞給Jinja,然後迭代它。或者你可以像下面這樣擴展'BaseModel':def asDict(self):d = {「name」= self.name,「comments」= self.comments} return d' – mbowden 2013-03-25 15:15:05

回答

1

它花了一段時間,需要一些反思,但我修好了。 我將它從模板中移開,並創建了一個提取註釋函數,它將提取的帖子作爲輸入並輸出註釋列表。然後,我剛剛通過這個作爲kwarg ofc。 它看起來像這樣

def get_comments(posts): 
    postids = [] 
    for post in posts: 
     postids.append(post.key().id()) 
    comments = {} 
    for i in postids: 
     comments[i] = Comment.all().ancestor(Blogpost.get_by_id(i)) 
    return comments 

在我的神社模板我做了一個簡單的for循環看起來像這樣

{% for comment in comments[entry.key().id()] %} 

可能就沒有做到這一點的最好辦法,但體面的工作好