def put(self, request):
try:
zip_file = request.FILES['file']
archive = zipfile.ZipFile(zip_file)
except (MultiValueDictKeyError, zipfile.BadZipfile):
raise NotZIPFileError
try:
csv_name = [item for item in archive.namelist() if item.endswith('csv')][0]
except IndexError:
raise NoCSVInArchiveFoundError
with archive.open(csv_name) as zip_csv_file:
# Convert zipfile handle to Django file handle
csv_file = File(zip_csv_file)
dataset = Dataset.objects.create(
name=zip_csv_file.name,
content=csv_file,
uploaded_by=request.user)
# Start tasks for feature calculation
initialize_from_dataset.delay(dataset_id=dataset.id)
serializer = DatasetSerializer(instance=dataset)
return Response(serializer.data)
评论列表
文章目录