Serializer DRF中数据的非模型字段
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Serializer DRF中数据的非模型字段相关的知识,希望对你有一定的参考价值。
我正在尝试序列化一个对象,我将非模型字段的数据传递给序列化程序
data = {
'field1': 'abc',
'field2': 123,
}
serializer = UserSerializer(
user,
context={"request": request},
data=request.data,
partial=True,
)
serializer.is_valid(raise_exception=True)
result = serializer.validated_data
我有这样的UserSerializer
class UserSerializer(serializers.ModelSerializer):
field1 = serializers.SerializerMethodField()
field2 = serializers.SerializerMethodField()
class Meta:
model = User
fields = (
'username',
'field1',
'field2',
)
但我从DefaultDict()
得到空serializer.validated_data
答案
你需要定义那个serializerMethod
。喜欢
class UserSerializer(serializers.ModelSerializer):
field1 = serializers.SerializerMethodField()
field2 = serializers.SerializerMethodField()
class Meta:
model = User
fields = (
'username',
'field1',
'field2',
)
def get_field1(self, obj):
value = self.context['request'].data.get('field1')
return value
def get_field2(self, obj):
value = self.context['request'].data.get('field2')
return value
以上是关于Serializer DRF中数据的非模型字段的主要内容,如果未能解决你的问题,请参考以下文章