我的序列化程式中有一個欄位“插件”(見下文),這是一個序列化程式,其中還包含一個檔案上傳,這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)添加到決議器串列中,但這并沒有改變任何東西。
uj5u.com熱心網友回復:
如果你用這個替換它有效嗎?我不確定,但也許 drf 無法將 ListSerializer 識別為欄位,我一直使用帶有以下內容的序列化器many=True:
plugins = serializers.ListField(child=serializers.CharField(), required=False, write_only=True)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/348909.html
