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

Django+mongodb 多层嵌套问题 Nonetype

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

具体建库:

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

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

 Django+mongodb 多层嵌套问题 Nonetype

3. cookingstep对应的表里

Django+mongodb 多层嵌套问题 Nonetype

4. foodmetail表

Django+mongodb 多层嵌套问题 Nonetype

可以说就是套了三层

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

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

dietary = fields.DictField()

就可以,序列化的时候:

massRatio = serializers.DictField()

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

Django+mongodb 多层嵌套问题 Nonetype

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

EmbeddedDocumentSerializer 

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


相关文章:

  • 2021-08-29
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-05
  • 2022-12-23
  • 2022-12-23
  • 2023-03-20
猜你喜欢
  • 2021-11-17
  • 2022-01-18
  • 2021-09-18
  • 2022-12-23
  • 2021-07-09
  • 2021-05-01
  • 2021-11-19
相关资源
相似解决方案