После некоторого копания и поиска по всему inte rnet. Я нашел лучшее решение для существующего. Я постараюсь записать подробный фрагмент! Использование SimpleUploadedFile , являющегося частью django .core.files.uploadedfile , решает большую часть проблемы и значительно облегчает чтение кода.
Вот фрагмент:
# Other imports
from django.core.files.uploadedfile import SimpleUploadedFile
import pandas as pd
import io
df = pd.DataFrame()
# Do something with dataframe
# After processing the dataframe do the following
output_stream = io.BytesIO()
df.to_excel(output_stream, index=False)
output_file = SimpleUploadedFile('sample.xlsx', output_stream.getvalue())
data = { 'record_type': 'OUTPUT_FILE', 'record':output_file }
record_serializer = RecordSerializer(data=data)
if record_serializer.is_valid():
record_serializer.save()
# Display data from the serializer/ Return serialized data
else:
# Return an exception or error from the serializer
Дайте мне знать, если это работает для любого из вас, кто пробовал это. Кроме того, поскольку вы передаете файл в качестве параметра в serialzer, независимо от того, используете ли вы локальное хранилище по умолчанию или конфигурируете S3, Azure et c с помощью django -хранилищ, файл будет загружен в Ваше соответствующее местоположение без хлопот вызова API для загрузки файлов, созданных python / django время от времени.