将字段包装到其他JSON对象中

阿拉兹·阿比绍夫(Araz Abishov)

更改Django Rest Framework的默认模型串行器返回的JSON结构的好方法是什么?

例子 -

DRF现在返回的餐厅对象:

{
    "id":9,
    "label":"Pizza Hut"
    "like_id:":32,
    "like_quantity":2
}

更理想的json结构:

{
    "id":9,
    "label":"Pizza Hut",
    "social": {
       "like_id:":32,
       "like_quantity":2   
    }
}

为了制作json结构,我希望将默认JSON中的几个字段嵌套在一个新字段下。

阿拉兹·阿比绍夫(Araz Abishov)

对我来说更好的解决方案是SerializerMethod在您的服务器中使用Serializer例如:

class RestaurantSerializer(serializers.ModelSerializer):
    id = serializers.IntegerField(source='id')    
    label = serializers.CharField(source='label')
    social = serializers.SerializerMethod(method_name='pick_social_fields')

    def is_restaurant_liked(self, restaurant):
        # some logic here
        return is_liked

    def pick_social_fields(self, restaurant):
        like_id = self.is_restaurant_liked(restaurant)
        like_quantity = restaurant.like_set.count
        return {
            'like_id': like_id,
            'like_quantity': like_quantity
        }       

此解决方案对我来说更好,因为您不必覆盖DRF视图中的任何内容。您只需要在Serializer类中定义一个方法

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将printf()包装到函数或宏中?

来自分类Dev

如何将python类包装到C ++类中?

来自分类Dev

通过复制将opengl对象包装到c ++类中

来自分类Dev

将对象包装到派生类中

来自分类Dev

如何将JSON对象从ActionMethod作为参数传递给MVC中的其他Action Method?

来自分类Dev

将GSL安装到其他目录

来自分类Dev

在c ++ 11中将其他参数包装到可变参数包

来自分类Dev

SQLAlchemy:将当前会话包装到模型中的正确方法?

来自分类Dev

使用jq在json对象中为每个数组元素生成一行输出,该对象还包括json对象中的其他字段

来自分类Dev

fluentd record_transformer-将$ [record]包装在其他json对象中

来自分类Dev

jq-将数组输出为csv,后跟对象中的其他字段

来自分类Dev

MongoDB:基于同一对象上的其他字段,将字段添加到数组中的所有对象吗?

来自分类Dev

是否可以将组面板包装到Scene Builder中的其他类型的面板中?

来自分类Dev

将文本字段中的图像包装到image_tag中

来自分类Dev

如何通过Gson集合将json数组包装到自定义对象?

来自分类Dev

将字段包装到其他JSON对象中

来自分类Dev

将JSON字符串转换为Java中的其他Java对象

来自分类Dev

在Clojure中使用其他类型字段将记录编码为JSON对象

来自分类Dev

JavaScript将一些数据包装到json数组中

来自分类Dev

红宝石优雅地将一系列项目包装到一个对象中

来自分类Dev

如何将JSON对象从ActionMethod作为参数传递给MVC中的其他Action方法?

来自分类Dev

将脚本的输出包装到运行它们的脚本中,并将其包装到日志中

来自分类Dev

将Alamofire调用包装到Swift中的自定义对象中?

来自分类Dev

仅在需要时将对象包装到Task <object>中

来自分类Dev

将 JSON 包装到输出流分析查询中

来自分类Dev

如何将 JSON 包装到 javascript 函数调用中

来自分类Dev

MongoDB 在其他字段中插入自己的对象 ID

来自分类Dev

更改矩阵中某个位置的对象字段会更改 Python 中其他位置的其他对象字段

来自分类Dev

如何将 int[] 包装到一个对象中并实现 equals()?

Related 相关文章

  1. 1

    如何将printf()包装到函数或宏中?

  2. 2

    如何将python类包装到C ++类中?

  3. 3

    通过复制将opengl对象包装到c ++类中

  4. 4

    将对象包装到派生类中

  5. 5

    如何将JSON对象从ActionMethod作为参数传递给MVC中的其他Action Method?

  6. 6

    将GSL安装到其他目录

  7. 7

    在c ++ 11中将其他参数包装到可变参数包

  8. 8

    SQLAlchemy:将当前会话包装到模型中的正确方法?

  9. 9

    使用jq在json对象中为每个数组元素生成一行输出,该对象还包括json对象中的其他字段

  10. 10

    fluentd record_transformer-将$ [record]包装在其他json对象中

  11. 11

    jq-将数组输出为csv,后跟对象中的其他字段

  12. 12

    MongoDB:基于同一对象上的其他字段,将字段添加到数组中的所有对象吗?

  13. 13

    是否可以将组面板包装到Scene Builder中的其他类型的面板中?

  14. 14

    将文本字段中的图像包装到image_tag中

  15. 15

    如何通过Gson集合将json数组包装到自定义对象?

  16. 16

    将字段包装到其他JSON对象中

  17. 17

    将JSON字符串转换为Java中的其他Java对象

  18. 18

    在Clojure中使用其他类型字段将记录编码为JSON对象

  19. 19

    JavaScript将一些数据包装到json数组中

  20. 20

    红宝石优雅地将一系列项目包装到一个对象中

  21. 21

    如何将JSON对象从ActionMethod作为参数传递给MVC中的其他Action方法?

  22. 22

    将脚本的输出包装到运行它们的脚本中,并将其包装到日志中

  23. 23

    将Alamofire调用包装到Swift中的自定义对象中?

  24. 24

    仅在需要时将对象包装到Task <object>中

  25. 25

    将 JSON 包装到输出流分析查询中

  26. 26

    如何将 JSON 包装到 javascript 函数调用中

  27. 27

    MongoDB 在其他字段中插入自己的对象 ID

  28. 28

    更改矩阵中某个位置的对象字段会更改 Python 中其他位置的其他对象字段

  29. 29

    如何将 int[] 包装到一个对象中并实现 equals()?

热门标签

归档