Я хотел бы создать парсеры для нескольких типов файлов при их загрузке. После разбора я хочу создать модель для каждого загруженного файла.
Я создаю функцию, которая принимает файл xyz и анализирует его, чтобы определить.
Я создаю APIView, который обрабатывает запрос и применяет мою функцию:
Мне нужно более удобное игибкий код, где каждый класс несет единоличную ответственность. Я думаю, что мне нужны DRM сериализаторы и парсеры. Но как я могу их соединить?
views.py
class parseXYZfile(generics.CreateAPIView):
# serializer_class = parseXYZFileSerializer
# parser_classes = [XYZFileParser]
def post(self, request):
files_data_list = request.FILES.getlist("files")
d = {}
for data in files_data_list:
path = default_storage.save('tmp/tmp_file.xyz', ContentFile(data.read()))
tmp_file = os.path.join(settings.MEDIA_ROOT, path)
d[str(data)] = parseXYZ(tmp_file)
os.remove(tmp_file)
return Response(d)