嗨,我有点试图将 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'}]
}
]
编辑
谢谢你是对的,我需要获取联系人集合,只有一个问题是,当联系人被编码时,它递归地尝试对 Trader 对象进行编码,这是联系人等等。
所以我得到了一个明显的错误递归错误,对此的解决方案显然是在编码时从联系人中删除交易者对象。