私はこの壁に頭をぶつけています。睡眠不足/初心者の状態で見落としていた非常に単純なことを教えていただければ幸いです。
非常に単純に、クエリを実行していて、ローカル マシンで返されるオブジェクトのタイプが、アプリケーションをデプロイした後に返されるものとは異なります。
match = MatchRealTimeStatsModel.queryMatch(ancestor_key)[0]
私のローカル マシンでは、上記により MatchRealTimeStatsModel オブジェクトが生成されます。したがって、次の行を問題なく実行できます。
logging.info(match) # outputs a MatchRealTimeStatsModel object
logging.info(match.match) # outputs a dictionary from json data
上記の 2 行を Goggles マシンで実行すると、次のようになります。
logging.info(match) # outputs a dictionary from json data
logging.info(match.match) # AttributeError: 'dict' object has no attribute 'match'
これを引き起こしている可能性のあるものについて何か提案はありますか? データ ストアをクリアし、GAE 環境をクリーンアップするために考えられるすべてのことを行いました。
編集 #1: MatchRealTimeStatsModel コードの追加:
class MatchRealTimeStatsModel(ndb.Model):
match = ndb.JsonProperty()
@classmethod
def queryMatch(cls, ancestor_key):
return cls.query(ancestor=ancestor_key).fetch()
そして、実際の呼び出しは次のとおりです。
ancestor_key = ndb.Key('MatchRealTimeStatsModel', matchUniqueUrl)
match = MatchRealTimeStatsModel.queryMatch(ancestor_key)[0]