Django+mongodb 多层嵌套问题 Nonetype

Django可以说是非常好的兼容了所有的关系型数据库,对于非关系型数据库可以说是有点不友好了,奈何还有很多无私的开源工作者为我们提供了很多便利,比如django-rest-framework-mongoengine这个神奇的东西,太多细节就不说了,因为公司就用mongo数据库,我用jdango这个框架,可以说还是遇到了一个很头疼的问题就是以下这个字段,嵌套三层,试了很多方法,各种序列化都不成功,今天总算解决了。(其实就是想太多)


我们在数据库里面看到dietary这个字段后面跟着一个object,其实就是字典类型,然后里面套了三层信息。

具体建库:

1. 本身dietary在一个食品表里,

2.她自己的详情表有几个信息

 

3. cookingstep对应的表里


4. foodmetail表


可以说就是套了三层

如果分别序列化,按照关系数据库的那种方式序列化是各种报错,报NoneType什么的错.

其实解决方法很简单,我们只是查库,在原来的大表中:

dietary = fields.DictField()

就可以,序列化的时候:

massRatio = serializers.DictField()

就可以跑出来想要的结果:


之前在序列化的过程中可以说尝试了很多中方式,网上也查了很多信息,可以说都不奏效,而且这方面信息也是挺少的,官方说

EmbeddedDocumentSerializer 

本身还是有缺陷的,不怎么好用。


猜你喜欢

转载自blog.csdn.net/suzimuyu99/article/details/80677011
今日推荐