【发布时间】: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 天了,我自己无法解决,所以寻求帮助。
【问题讨论】:
-
查询时是什么意思?调用 api 端点时的输出是什么?
-
@dan-klasson 而不是 JSON 序列化 string.m 在输出中获取类对象
-
我认为 ListField 是特定于 mongodb 的。如果您知道如何将对象转换为列表,您可以在
dehydrate方法中执行此操作:django-tastypie.readthedocs.org/en/latest/resources.html#id2 -
这是一个如何实现它的例子:django-tastypie.readthedocs.org/en/latest/…你应该可以访问
bundle.data['postItems']中的对象
标签: mongodb tastypie django-nonrel