【问题标题】:Django & Mongoengine get data from embedded document?Django & Mongoengine 从嵌入式文档中获取数据?
【发布时间】:2018-01-09 04:39:23
【问题描述】:

我在从 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 返回的是对象而不是值。

【问题讨论】:

    标签: python django mongodb django-rest-framework mongoengine


    【解决方案1】:

    我看到您正在使用Dajngo Rest FrameWorkAPIView。看看django-rest-framework-mongoengine。如果您已经熟悉 DRF,可以使用 this 扩展名轻松地使用 MongoDB 创建 API 端点。

    您现在一定已经找到了一些解决方法,即使您可以将此答案标记为正确,以便将来如果其他人遇到同样的问题,他们也可以获得解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-19
      • 2013-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多