специфическая агрегатная функция gql - PullRequest
0 голосов
/ 20 октября 2010

предполагается следующее:

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

class items(db.model):
  itemCode = db.IntegerProperty()
  itemTitle = db.StringProperty()

сейчас, если у меня есть несколько событий в будущем для определенного элемента, как я могу показать список всех элементов, для каждого элемента отображается только следующее событие?

Я пробовал заполнить поле в классе элементов как:

  itemNext = db.DateProperty()

, который обновляется, когда событие установлено, но проблема в том, что происходит, когда событие изменено или удалено, нужно сделать намного больше вызовов, чтобы очистить его или изменить его (если я что-то упустил)

Ответы [ 2 ]

1 голос
/ 20 октября 2010

Это тот случай, когда следующее событие - это событие, дата которого в будущем, и из этих дат в будущем ближе всего к настоящему моменту? Если это так, я бы сделал что-то вроде этого:

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 голосов
/ 21 октября 2010

Лучший вариант - сохранить ссылку на следующее событие и выполнить поиск в хранилище данных. Да, это потребует обновления этих записей при изменении или удалении соответствующего элемента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...