字段数据在 Django REST 框架中消失

Field data disappears in Django REST framework

我的序列化程序中有一个字段“插件”(见下文),这是一个序列化程序,其中还包含文件上传,这就是使用 MultiPartParser 的原因。我的观点非常标准,plugins 字段数据也出现在 request.data 中,但是它没有出现在序列化程序的 validated_data 中。举一个简约的例子,这将是我的序列化程序:

class CreationSerializer(serializers.ModelSerializer, FileUploadSerializer):
    plugins = serializers.ListSerializer(
        child=serializers.CharField(), required=False, write_only=True)

    class Meta:
        fields = ['plugins'] + FileUploadSerializer.Meta.fields
        model = Company

    def create(self, validated_data):
        print(validated_data)

虽然这是我的 views.py:

@swagger_auto_schema(request_body=CreationSerializer(), responses={201: CreationSerializer()}, operation_id='the_post')
def create(self, request, *args, **kwargs):
    print(request.data)
    return super().create(request, *args, **kwargs) # which uses mixins.CreateModelMixin

我尝试将另一个解析器(即 JSONParser)添加到解析器列表,但这并没有改变任何东西。

换成这个行不行?我不确定,但也许 drf 无法将 ListSerializer 识别为一个字段,我一直使用带有 many=True:

的序列化器
plugins = serializers.ListField(child=serializers.CharField(), required=False, write_only=True)