因此,如果我对您的理解正确,那么您想在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文档。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)