я объявил 2 модели Ndb следующим образом:Ndb модели пользовательское свойство не возвращает правильное значение при развертывании
class Event(ndb.Model):
event_type = ndb.KeyProperty()
@property
def installments(self):
return EventInstallment.query().filter(EventInstallment.event == self.key).count()
class EventInstallment(ndb.Model):
event = ndb.KeyProperty()
я настойчив единое целое типа Event и другого типа EventInstallment. EventInstallment.event - это ключ объявленной сущности Event. Следующий запрос работает (т.е. возвращает 1) при запуске локально, но не при развертывании:
event_query = Event.query()
event_query = event_query.filter(ndb.GenericProperty('installments') > 0)
print event_query.count()
я очистил кэш памяти, и проверил, что все свойства EventInstallment являются правильными. При открытии объекта EventInstallment в datastoreviewer он имеет горячую ссылку на ключ Event, как и ожидалось.
Может кто-нибудь сказать мне, что здесь происходит не так? В частности, мне любопытно узнать, почему это работает локально, а не при развертывании.
Сколько времени между вами, '.put()' объект 'EventInstallment' и когда выполняется ваш второй фрагмент кода? –
Хорошо - в тестировании это было где угодно до 30 минут - я не думаю, что это был вопрос времени. – user714852
Также обратите внимание, что ... если вы просто хотите, чтобы подсчет результатов запроса извлекал только ключи (.count (keys_only = True) – janscas