我有一个包含 JsonField 的模型的序列化器。我希望始终返回特定字段,即使在 jsonField 中找不到它们。当调用“get”时,它确实返回序列化器中的所有字段,但是当调用“update”时,它返回带有更新字段 和 的实例,allow_null=True因此default=list未更新的字段将不会在响应中返回。问题是我如何仍然返回所有序列化器字段作为响应,包括字段default=list,即使它们没有更新并且不存在?
这是序列化器 -
class ObjectsListSerializer(serializers.Serializer):
days = serializers.IntegerField(allow_null=True, source='objects_list.days')
user_list = serializers.ListField(child=serializers.CharField(), default=list, allow_empty=True, required=False, source='objects_list.user_list')
manager = serializers.CharField(allow_null=True, source='objects_list.manager')
def update(instance, validated_data):
if 'objects_list' in validated_data:
for attr, value in validated_data['objects_list'].items():
instance.objects_list[attr] = value
instance.save()
return instance
如前所述,当发送“get”请求时,即使“objects_list”为空,我也会得到
days=None
user_list=[]
manager=None
在回应中
但是,当 user_list 不存在并且我正在更新其他字段(例如“天”)时,响应中将不存在“user_list”。知道当空列表不存在时如何仍然返回空列表吗?
繁星coding
相关分类