字段数据在 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)
我的序列化程序中有一个字段“插件”(见下文),这是一个序列化程序,其中还包含文件上传,这就是使用 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)