我有一个模型序列化器,其中有许多模型序列化器字段,如:
class MySerializer(serializers.ModelSerializer):
pk = serializers.IntegerField()
status = serializers.CharField()
participants = ParticipantSerializer(many=True, allow_null=True, required=False)
class ParticipantSerializer(serializers.CharField):
pk = serializers.IntegerField()
class Meta:
model = User
fields = ('pk',)
现在我想更新状态,如:
self.client.patch('/api/my-model/{0}/'.format(pk), data={'status': 'blub'})
如果我检查请求,则只设置状态:
print self.request.POST
<QueryDict: {u'status': ['blub']}>
但是validated_data
还包含participants
以及一个空数组:
print serializer.validated_data
OrderedDict([(u'participants', []), (u'status', 'blub')])
为什么序列化程序会添加此空数组,即使该字段不是必需的且allow_null
为true
?