如果model包含ListField(db.ReferenceField))并且在查询后调用to_json()
ir,则不会将子节点转换为json,只需将其保留为OID即可。有没有办法轻松地将(至少到X级别)孩子转换为json?
"data": {
"articles": [],
"category": {
"_id": {
"$oid": "5224905453f0462f5458a724"
},
"children": [
{
"$oid": "5224905453f0462f5458a725"
},
{
"$oid": "5224905453f0462f5458a726"
},
{
"$oid": "5224905453f0462f5458a727"
},
{
"$oid": "5224905453f0462f5458a728"
}
],
...........
答案 0 :(得分:8)
而不是to_json()(你可以覆盖你文档中的to_json),使用to_mongo()来获取一个SON对象,然后更新SON对象字段(就像一个dict对象),为每个referencefield项替换它们.to_mongo(),最后返回bson.json_util.dumps(SON obj)。
#override
def to_json():
data = self.to_mongo()
for i in range(len(data['children'])):
data['children'][i]= self.children[i].to_mongo()
return bson.json_util.dumps(data)
答案 1 :(得分:0)
目前不行,它将文档转换为extended json格式。如果要包装嵌入式文档,则必须将其作为完全自定义格式处理,并手动处理转换和解析。