こんにちは私は、DataStoreの背後にある概念をNo-SQLデータベースとして取得しようとしています。フェッチしようとしているのは、別のオブジェクトによって「参照」されているオブジェクトのリストです。このように
class Person(db.Model):
name = db.StringProperty(required=True)
class Contact(db.Model):
name = db.StringProperty(required=True)
email = db.StringProperty()
trader = db.ReferenceProperty(Person)
これは正常に機能し、person.put()を問題なく使用すると保存されます。しかし、それを取得してjsonとしてエンコードしようとすると、連絡先がリストとして表示されることはなく、実際には完全に無視されます。
persons_query = Person.all()
persons = persons_query.fetch(50)
data = json.encode(persons)
私は人が連絡先のコレクションを持っていることを期待しますが、それはこの問題を解決する方法についてのアイデアがありませんか?
それをより明確にするために、現在私はこのようなものを手に入れています:
[
{
name: "John Doe"
}
]
私はなりたい
[
{
name: "John Doe"
contacts: [{name:"Alex", email:'alex@gmail.com'}]
}
]
編集
連絡先のコレクションを取得する必要がありましたが、問題は1つだけでした。これは、Contactがエンコードされているときに、Traderオブジェクトとこれが連絡先などを再帰的にエンコードしようとしたことです。
したがって、明らかなエラー再帰エラーが発生しました。これに対する解決策は、エンコード時に連絡先からトレーダーオブジェクトを削除することでした。