不需要很多字段返回空数组,即使没有设置字段

时间:2016-05-04 09:33:37

标签: django-rest-framework

我有一个模型序列化器,其中有许多模型序列化器字段,如:

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_nulltrue

0 个答案:

没有答案