【发布时间】:2019-01-22 10:09:54
【问题描述】:
我正在使用 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}。
我尝试过但没有像我希望的那样工作:
class MyFunnyDataSerializer(serializers.Serializer):
funny = serializers.Booleanfield(source='FunnyNamedField')
有没有办法在不恢复到SerializerMethodField 的情况下实现这一目标?
【问题讨论】:
-
此链接建议使用 source=,它仅适用于 ModelSerializer。
标签: python serialization django-rest-framework