我无法从mongoengine中的嵌入式文档中检索数据。
models.py
from mongoengine import Document, EmbeddedDocument, fields
class ProductFields(EmbeddedDocument):
key_name = fields.StringField(required=True)
value = fields.DynamicField(required=True)
class Product(Document):
name = fields.StringField(required=True)
description = fields.StringField(required=True, null=True)
fields = fields.ListField(fields.EmbeddedDocumentField(ProductFields))
views.py
class ProductListView(APIView):
def get(self, request):
# list_products = Product.objects.all()
result=[]
productfields = ProductFields
for product in Product.objects:
data={
"name":product.name,
"description":product.description,
# "key":product.fields.key_name,
# "value":ProductFields.value,
}
print (data)
# print(productfields.key_name)
result.append(data)
return Response({"products":result,"message":"list of products.","requestStatus":1},status=status.HTTP_200_OK)
输出:
{
"description": "test description",
"name": "product1"
"fields":[
{ "key_name" : value},
{ "key_name" : value},
]
}
如何获得上述输出?打印功能不起作用,因为mongoengine返回对象而不是值。
答案 0 :(得分:0)
在这里,我看到您正在使用Dajngo Rest FrameWork中的 APIView 。看看django-rest-framework-mongoengine。如果您已经熟悉DRF,则可以使用this扩展名通过MongoDB轻松创建API端点。
即使您可以将此答案标记为正确,您现在也必须找到一些解决方法,以便将来如果其他任何人遇到相同的问题,他们都可以找到解决方案。