2010-10-20 28 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

你最好的选择,就是保持到下一个事件的参考,并为它做了数据存储的查找。是的,那需要在关联项目被修改或删除时更新这些记录。