gpt4 book ai didi

python - 序列化器 DRF 中数据的非模型字段

转载 作者:行者123 更新时间:2023-12-01 08:10:18 25 4
gpt4 key购买 nike

我正在尝试序列化一个对象,在该对象中我会将非模型字段的数据传递到序列化器中

    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',
)

但是我从 serializer.validated_data 中得到空的 DefaultDict()

最佳答案

您需要定义该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

关于python - 序列化器 DRF 中数据的非模型字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55295737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com