2010-10-20 50 views
0

假設如下:GQL特定的聚合函數

class events(db.model): 
    eventDate = db.DateProperty() 
    eventItem = db.ReferenceProperty(items) 

class items(db.model): 
    itemCode = db.IntegerProperty() 
    itemTitle = db.StringProperty() 
現在如果我有一個特定項目在未來的多個事件

,我怎麼能顯示每個顯示,只有在未來發生的事件的所有項目的列表項目?

我已經在項目類嘗試過的合計字段爲:

itemNext = db.DateProperty() 

它得到當設置了事件更新,但這樣做的問題是,當一個事件被更改或刪除其它更多的電話都發生了什麼(除非我錯過了某些東西)

回答

1

這是下一個事件是誰的日期是在未來的事件,並且這些日期在未來是最接近現在的事件嗎?如果是的話,我會做這樣的事情:

def get_next(for_item): 
    next_event = events.all().filter('eventItem = ', for_item.key()).filter('eventDate >', datetime.datetime.now()).order('eventDate').get() 

    return next_event 
+0

我喜歡這個,但是,想象我有50個項目,一些有即將舉行的活動,一些沒有。我需要撥打這個電話50次嗎? – khany 2010-10-20 20:30:57

0

你最好的選擇,就是保持到下一個事件的參考,併爲它做了數據存儲的查找。是的,那需要在關聯項目被修改或刪除時更新這些記錄。