Django rest framework 非必需多个字段返回空数组,即使未设置字段也是如此

Django rest framework 非必需多个字段返回空数组,即使未设置字段也是如此,django-rest-framework,Django Rest Framework,我有一个模型序列化程序,其中包含另一个多模型序列化程序字段,如: 类MySerializer(serializers.ModelSerializer): pk=序列化程序。IntegerField() status=serializers.CharField() 参与者=ParticipantSerializer(many=True,allow\u null=True,required=False) 类ParticipantSerializer(serializers.CharField): p

我有一个模型序列化程序,其中包含另一个多模型序列化程序字段,如:

类MySerializer(serializers.ModelSerializer):
pk=序列化程序。IntegerField()
status=serializers.CharField()
参与者=ParticipantSerializer(many=True,allow\u null=True,required=False)
类ParticipantSerializer(serializers.CharField):
pk=序列化程序。IntegerField()
类元:
模型=用户
字段=('pk',)
现在我只想更新状态,如下所示:

self.client.patch('/api/my-model/{0}/'.format(pk), data={'status': 'blub'})
如果我检查请求,则仅设置状态:

print self.request.POST
<QueryDict: {u'status': ['blub']}>
为什么序列化程序会添加这个空数组,即使该字段不是必需的并且
allow\u null
true

它看起来像django rest框架中的一个bug(?),它以不同的方式处理编码。如果我们使用JSON而不是formencoded,它就会工作。这里的类似问题看起来像django rest框架中的一个bug(?),它以不同的方式处理编码。如果我们使用JSON而不是formencoded,它就会工作。这里也有类似的问题
print serializer.validated_data
OrderedDict([(u'participants', []), (u'status', 'blub')])