Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django非相关tastypie mongodb嵌入式模型解码_Mongodb_Tastypie_Django Nonrel - Fatal编程技术网

Django非相关tastypie mongodb嵌入式模型解码

Django非相关tastypie mongodb嵌入式模型解码,mongodb,tastypie,django-nonrel,Mongodb,Tastypie,Django Nonrel,我正在尝试将django non-rel与tastypie和mongodb一起使用。我有一个嵌入另一个模型对象列表的模型,但当我查询它时,EmbeddedModel如下所示 项目:项目对象 我试图破译同样的东西,但无法破译 以下是输出: {"meta": {"limit": 20, "next": null, "offset": 0, "previous": null, "total_count": 1}, "objects": [{"postItem": "[<Item: Item ob

我正在尝试将django non-rel与tastypie和mongodb一起使用。我有一个嵌入另一个模型对象列表的模型,但当我查询它时,EmbeddedModel如下所示

项目:项目对象

我试图破译同样的东西,但无法破译

以下是输出:

{"meta": {"limit": 20, "next": null, "offset": 0, "previous": null, "total_count": 1}, "objects": [{"postItem": "[<Item: Item object>, <Item: Item object>]", "title": "sdfdf"}]}
api.py

我的mongodb数据库中有如下文档:


有人能告诉我如何解码输出JSON中的嵌入模型数据吗?已经3天了,我自己无法解决,因此寻求帮助

只是为了将来的帮助。我在回答我自己的问题。我用脱水法解决了这个问题

def dehydrate_postItem(self,bundle):
    results=list()
    for i in xrange(len(bundle.obj.postItem)):
        dictn={}
        dictn['itemType']=bundle.obj.postItem[i].itemType
        dictn['content']=bundle.obj.postItem[i].content
        results.append(dictn)
    return results
现在我得到了期望的输出:

{"meta": {"limit": 20, "next": null, "offset": 0, "previous": null, "total_count": 1}, "objects": [{"postItem": [{"content": "sdfdsf", "itemType": "S"}, {"content": "fdsfdsfd", "itemType": "T"}], "title": "sdfdf"}]}

你问它是什么意思?调用api端点时的输出是什么?@dan klasson,而不是JSON序列化字符串。m在输出中得到一个class对象。我认为ListField是mongodb特有的。如果您知道如何将对象转换为列表,那么您可以使用deterheate方法进行转换:您可能还想查看下面的示例如何实现它:您应该能够访问bundle.data['positems'中的对象
{
    "_id" : ObjectId("563dc4b808fcd877fb057ba6"),
    "postItem" : [ 
        {
            "content" : "sdfdsf",
            "itemType" : "S"
        }, 
        {
            "content" : "fdsfdsfd",
            "itemType" : "T"
        }
    ],
    "title" : "sdfdf"
}
def dehydrate_postItem(self,bundle):
    results=list()
    for i in xrange(len(bundle.obj.postItem)):
        dictn={}
        dictn['itemType']=bundle.obj.postItem[i].itemType
        dictn['content']=bundle.obj.postItem[i].content
        results.append(dictn)
    return results
{"meta": {"limit": 20, "next": null, "offset": 0, "previous": null, "total_count": 1}, "objects": [{"postItem": [{"content": "sdfdsf", "itemType": "S"}, {"content": "fdsfdsfd", "itemType": "T"}], "title": "sdfdf"}]}