15 分間隔で Web サイトを解析する GAE (google app engine) アプリがあります。cron は 15 分ごとに、BitData()
ロードされる最も古いデータ (この場合) のタイムスタンプをチェックし、その時点から までのデータを解析しますutc.now()
。BitData()
残念ながら、最新のオブジェクトを求めて NDB データベースにクエリを実行する最初の部分を通過できません。
コード例:
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'
ここ、ここ、および NDB Google ドキュメントの例に対してコードをチェックしましたが、クエリが実行されない理由がわかりません。
ビットデータ:
class BitData(ndb.Model):
key = ndb.KeyProperty
tstamp = ndb.DateTimeProperty
price = ndb.IntegerProperty
amount = ndb.IntegerProperty