Данные поля исчезают в REST-фреймворке Django
У меня есть поле "plugins" (см. ниже) в моем сериализаторе, и это сериализатор, который также содержит загрузку файла, поэтому используется 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 как поле, я всегда использовал Serializer с many=True
:
plugins = serializers.ListField(child=serializers.CharField(), required=False, write_only=True)