【发布时间】:2019-11-03 02:24:57
【问题描述】:
我正在使用 djangorestframework 3.7.7
我有不包含“所有者”字段的“项目”模型。 项目模型序列化器看起来像这样:
class ItemSerializer(serializers.ModelSerializer):
id = serializers.CharField(required=False, max_length=1000, allow_null=True)
owner = serializers.SerializerMethodField()
class Meta:
model = Item
fields = [
'id',
'owner'
]
def get_owner(self, item):
return item.package.owner if item.package else None
当使用序列化它时:
ser_item = ItemSerializer(item)
我在ser_item.data 中获得了owner 字段
但是在反序列化的时候,使用:
serializer = ItemSerializer(data=ser_item)
serializer.is_valid(raise_exception=True)
obj = Item(**serializer.validated_data)
obj 不包含 owner 字段。
它甚至似乎都没有通过序列化程序(调试时)。
知道如何反序列化,以便这个不属于模型的字段将成为新实例的一部分吗?
【问题讨论】:
标签: django serialization