Я пытаюсь загрузить файл CSV в Django Rest Framework с помощью сериализатора.
Ниже приведено изображение, содержащее код для модели, представления и сериализатора, и вывод консоли, когда я пытаюсь отправить CSVfile.
Перед проверкой сериализатора, когда я проверяю с помощью print (serializer.initial_data), в сериализаторе есть файл, но как только сериализатор проверяет его, он сообщает, что файл не был отправлен.
models.py
class InventoryFile(models.Model):
shop = models.ForeignKey(Shop,on_delete=models.CASCADE)
shop_inventory = models.FileField(upload_to='inventory/')
serializers.py
class InventoryFile_Serializer(serializers.ModelSerializer):
class Meta:
model = InventoryFile
fields = ('shop_inventory',)
views.py
class InvertoryUpload(APIView):
serializer_class = InventoryFile_Serializer
parser_classes = [ MultiPartParser,FormParser ]
def post(self,request):
try:
serializer = InventoryFile_Serializer(data=request.data)
print(serializer.initial_data)
if serializer.is_valid():
print(serializer.data)
return Response("Done")
else:
print(serializer.errors)
return Response("Not Done")
except Exception as e:
return Response(str(e))
Вывод
System check identified no issues (0 silenced).
January 30, 2019 - 11:22:06
Django version 2.1, using settings 'hoplet.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
<QueryDict: {'inventory': [<InMemoryUploadedFile: MOCK_DATA_2.csv (application/vnd.ms-excel)>]}>
{'shop_inventory': [ErrorDetail(string='No file was submitted.', code='required')]}
[30/Jan/2019 11:22:18] "POST /uploadinv HTTP/1.1" 200 10