Django Rest Framework如何更新SerializerMethodField

Django Rest Framework如何更新SerializerMethodField,第1张

Django Rest Framework如何更新SerializerMethodField

因此,如果我对您的理解正确,那么您想在PATCH请求中发送{‘gender’:’Male’}。

因此,您必须告诉序列化器如何将您的表示形式(即“ Male”)转换内部值。

如您在source中所见,SerializerMethodField仅涵盖从内部值到表示形式的转换。

您可以实现一个自定义SerializerField来执行必要的转换。天真的实现可能是这样的:

class GenderSerializerField(serializers.Field):    VALUE_MAP = {        'M': 'Male',        'F': 'Female'    }    def to_representation(self, obj):        return self.VALUE_MAP[obj]    def to_internal_value(self, data):        return {k:v for v,k in self.VALUE_MAP.items()}[data]class PersonSerializer(serializers.ModelSerializer):    gender = GenderSerializerField()    ...

请注意,这未经测试且缺乏任何验证,请查看有关自定义字段的DRF文档。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5631602.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存