【问题标题】:Django non-rel tastypie mongodb embeddedmodel decodedjango非reltastepie mongodb嵌入式模型解码
【发布时间】:2023-04-06 04:16:01
【问题描述】:

我正在尝试将 django non-rel 与 sweetpie 和 mongodb 一起使用。我有一个模型,它嵌入了另一个模型对象的列表,但是当我查询它时,EmbeddedModel 是这样的

项目:项目对象

我试图解码相同但无法做到。

这是输出:

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

models.py

from django.db import models

from djangotoolbox.fields import ListField,EmbeddedModelField

class Item(models.Model):
    itemType=models.CharField(max_length=1,null=False)
    content=models.TextField()
class Post(models.Model):
    title = models.CharField(max_length=100,null=False)
    postItem=ListField(EmbeddedModelField('Item'))

api.py

from django.conf import settings
from django.contrib.auth.models import User

from tastypie import fields
from tastypie.bundle import Bundle
from django.db import models


class ScreenFeed(ModelResource):
    class Meta:
        queryset=Post.objects.all()
        resource_name='post'
        fields=["title","postItem"]
        include_resource_uri=False

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

{
    "_id" : ObjectId("563dc4b808fcd877fb057ba6"),
    "postItem" : [ 
        {
            "content" : "sdfdsf",
            "itemType" : "S"
        }, 
        {
            "content" : "fdsfdsfd",
            "itemType" : "T"
        }
    ],
    "title" : "sdfdf"
}

谁能建议我如何解码输出 JSON 中的嵌入式模型数据?已经 3 天了,我自己无法解决,所以寻求帮助。

【问题讨论】:

标签: mongodb tastypie django-nonrel


【解决方案1】:

只是为了将来的帮助。我正在回答我自己的问题。通过使用脱水方法我解决了它。

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"}]}

【讨论】:

    猜你喜欢
    • 2017-07-24
    • 1970-01-01
    • 1970-01-01
    • 2018-07-21
    • 1970-01-01
    • 1970-01-01
    • 2017-09-21
    • 1970-01-01
    • 2011-10-13
    相关资源
    最近更新 更多