重命名DRF序列化程序字段

2024-04-24 02:34:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用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的情况下实现这一点吗?在


Tags: 数据代码程序apijsontruedata序列化
1条回答
网友
1楼 · 发布于 2024-04-24 02:34:12

您可以重写BaseSerializer来实现此目的:

from rest_framework import serializers

class CustomSerializer(serializers.BaseSerializer):

    def to_representation(self, instance):
        return {
            <datas>
        }

可以使用自定义方法对实例序列化进行一些特定的修改。在

另一种解决方案是为一个字段编写自己的验证器:Field Validator Method。在

所以在这个文档示例中,您可以在返回值之前修改它。在

^{pr2}$

希望有帮助。在

相关问题 更多 >