我使用DRF序列化程序来验证从JSON API检索的传入数据。我试图从响应中重命名一些命名不好的字段,以便在代码中进一步使用serializer.data
。在
从API接收的数据如下所示:
{"FunnyNamedField": true, "AnotherWeirdField": false}
和处理代码:
resp = requests.get([...])
resp.raise_for_status()
ser = MyFunnyDataSerializer(data=resp.json())
if ser.is_valid():
do_domething_with(ser.data)
我希望序列化程序将传入的字段名转换为更为贴切的内容。ser.data
可能看起来是:{'funny': True, 'weird': False}
。在
我试过了,但没有如愿成功:
^{pr2}$有什么方法可以在不恢复到SerializerMethodField
的情况下实现这一点吗?在
您可以重写BaseSerializer来实现此目的:
可以使用自定义方法对实例序列化进行一些特定的修改。在
另一种解决方案是为一个字段编写自己的验证器:Field Validator Method。在
所以在这个文档示例中,您可以在返回值之前修改它。在
^{pr2}$希望有帮助。在
相关问题 更多 >
编程相关推荐