1

モデルをシリアル化するにはどうすればよいですか。キー プロパティが繰り返されない場合、シリアル化できます。

モデルは次のようになります。

class Properties(ndb.Model):
  propertyID = ndb.StringProperty(required=True)
  propertyParentKey = ndb.KeyProperty()
  propertyItems = ndb.KeyProperty(repeated=True)

私は何かをしたい

#get all in list
 fetched = model.Properties.query().fetch()

#to a list of dicts
 toSend = [p.to_dict() for p in fetched]

 #Serialize 
  json.dumps(stuff=toSend)

どういうわけかモデルをシリアル化することは可能ですか? キープロパティのリストをどのように処理できますか?

4

1 に答える 1

2

辞書メソッドに適した独自のjsonを作成してみませんか? おそらく次のようなもので十分です。

def custom_to_dict(self):
    return {
      'propertyId': self.propertyID,
      'propertyParentKey': self.propertyParentKey.urlsafe(),
      'propertyItems': [key.urlsafe() for key in self.propertyItems]
    }

https://developers.google.com/appengine/docs/python/ndb/keyclass#Key_urlsafe

于 2013-10-18T02:45:47.170 に答える