Изменить тип MIME загруженного файла в Django - PullRequest
0 голосов
/ 09 февраля 2020

Я работаю с docx, используя python -docx libary, который не поддерживает docm. Макросы нужны только для проверки данных, когда человек вводит текст в этот файл.

При загрузке файла мне нужен только контент. python -docx выбрасывает это

is not a Word file, content type is 'application/vnd.ms-word.document.macroEnabled.main+xml'

Как изменить мим-время загруженного документа, чтобы обмануть python -docx

Код для загрузки файла

@transaction.atomic
def directions_import_view(request):
    """ Import directions from family ambulance """

    form = ImportDirectionsForm()
    if request.method == "POST":
        form = ImportDirectionsForm(request.POST, request.FILES)
        if form.is_valid():
            # parse patients
            import mimetypes
            mimetypes.add_type('application/vnd.openxmlformats-officedocument.wordprocessingml.document', '.docm', True)
            print(request.FILES['file'].content_type)
            parsed_patients = parse_foreign_patients_by_doc(request.FILES['file'])
            # save patient and direction to db
            for foreign_patient in parsed_patients:
                created_patient = foreign_patient.save_patient_to_local_db()
                analysis_name = LabAnalysisTypeModelHelper.get_name_by_type(
                    form.cleaned_data.get('to_analysis'))
                direction = Direction(
                    serial_no=created_patient.number_card,
                    who_send='ЦПМСД №1',
                    who_is_doctor=foreign_patient.doctor,
                    analysis_type=form.cleaned_data.get('to_analysis'),
                    analysis_name=analysis_name,
                    date=form.cleaned_data.get('date'),
                    patient=created_patient
                )
                direction.save()
            messages.add_message(request, messages.INFO, 'Створено ' + str(len(
                parsed_patients)) + ' направлень на ' + analysis_name)
            return redirect(reverse('direction_list'))
    return render(request, 'directions/import_directions.html', {'form': form})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...