2013-04-08 4 views
0

У меня есть приложение GAE (Google App Engine), которое должно анализировать веб-сайт с 15-минутными интервалами. каждые 15 минут cron проверяет метку времени на самых старых данных (BitData() в этом случае) для загрузки и будет анализировать данные с этой точки до utc.now(). Unfortionetly Я не могу пройти первую часть запроса базы данных NDB для новейшего объекта BitData().Выполнение запроса NDB во время cronjob

Пример кода:

def bitcoincharts_last(): 
    q = BitData.query() 
    q = q.order(BitData.tstamp) 
    if q == None: 
     return '0' 
    else: 
     return q[0] 

Это выдает ошибку в журнале:

TypeError: order() expects a Property or query Order; received <class 'google.appengine.ext.ndb.model.DateTimeProperty'> 

Использование q = q.order(-BitData.tsamp) в порядке, обратном ответов вместо дает:

TypeError: bad operand type for unary -: 'type' 

Я проверил мой код на примерах here, here, d DDB Google Docs, но я не могу найти, почему запрос не запускается.

BitData:

class BitData(ndb.Model): 
    key = ndb.KeyProperty 
    tstamp = ndb.DateTimeProperty 
    price = ndb.IntegerProperty 
    amount = ndb.IntegerProperty 
+1

Какое у вас определение модели BitData? –

+0

обновил вопрос. – Davidrd91

ответ

3

определение модели должно быть:

class BitData(ndb.Model): 
    key = ndb.KeyProperty() 
    tstamp = ndb.DateTimeProperty() 
    price = ndb.IntegerProperty() 
    amount = ndb.IntegerProperty() 

Вы просто определения ваших полей классов, чтобы указывать на классы ОПРС собственности, вы на самом деле не инстанцирует какой-либо из них.

+0

Спасибо, что сработал. Я, должно быть, пропустил это, когда переключил его с обычных моделей БД. Также используя знак минуса перед порядком, подобным этому: 'q = q.order (-BitData.tsamp)' все еще дает ту же ошибку – Davidrd91

+0

Вы уверены? Прекрасно подходит для меня, как только вы используете новое определение модели, которое я предоставил. – someone1

+0

На самом деле ваши права. Я, вероятно, не сохранил его в Eclipse перед обновлением, а затем снова менял его. Большое спасибо! – Davidrd91

Смежные вопросы