如何在djangorestframework中做出自定义响应

Sukhinderpal曼

因此,我喜欢使用基于类的视图和ModelSerializers的想法,但是对于我的特定用例,我有一个问题。也许我没有使用它,因为它打算被使用。

class CarSerializer(serializers.ModelSerializer):

   class Meta:
        model = CarModel
        fields = ['car_name']


# A car can have build for multiple years
class MakelHistorySerializer(serializers.ModelSerializer):
   car = CarSerializer(many=True, read_only=True)

   class Meta:
        model = MakeHistoryModel
        fields = ['model_year', 'car']

响应为:

{
  "car": {
           "car_name": "Fiesta"
   },
   "model_year": "2020"
}

我的两个模型类CarModel和MakeHistoryModel分别具有[“ id”,“ car_name”,“ manufacturer”]和[“ id”,“ car_id”,“ model_year”,“ country_id”]字段。

我真正想要的回应是:

{
  "car_name": "Fiesta",
  "model_year": "2020"
}

我该怎么做?

卡米利布

您不需要先使用序列化器(CarSerializer)。只需此序列化器具有足够的SerializerMethodField即可输出:

class MakelHistorySerializer(serializers.ModelSerializer):
   car_name = serializers.SerializerMethodField()

   class Meta:
        model = MakeHistoryModel
        fields = ['model_year', 'car_name']

   def get_car_name(self,obj):
       return obj.car.name if obj.car_id else ''
       # I don't know your model so to avoid NoneType error, I added this check

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在NestJS中使用globalPipse做出自定义响应

如何在api响应中给出自定义错误消息

步骤插件开发:如何在textVar()输入中列出自定义变量?

如何在反应中从 js 文件导出自定义 array.prototype 方法

如何在Sphinx中输出自定义静态文件?

如何在 Java 中使用自定义值抛出自定义异常?

如何在UpdateAPIView中返回自定义JSON响应?

如何在 ModelViewSet 中自定义响应消息

如何使用自定义权限 djangorestframework

如何在WordPress响应中显示自定义帖子类型的JSON响应中的自定义字段?

如何在客户端发出自定义的“ POST”请求?

如何在 QtCreator 中使用 CMAKE 列出自定义文件?

grails:如何在导出自定义视图的同时保留生成的视图以供参考

如何在mxnet中加权softmax输出自定义op?

如何使用基于 C# 中自定义异常构造的函数抛出自定义异常?

如何检查 Flask 中的 abort() 是否抛出自定义错误消息?

如何从事务性Spring服务中抛出自定义异常?

如何从 Python Selenium 中的 JavaScript onClick 发出自定义 GET 请求

Inertiajs - Laravel:如何抛出自定义错误

如何列出自定义目录的所有文件

如何确定范围,将输出自定义数据?

如何输出自定义while循环php

如何调出自定义块的代理类型?

如何导出自定义的Libreoffice配置文件?

如何期望用玩笑抛出自定义错误?

弹出自定义键盘中按下的键

在密码重置自定义策略中输出自定义属性

如何在ExceptionLogger内部返回自定义响应

如何在NestJS管道中进行自定义响应