Я работаю с 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})