Заполнение документа Django python-docx
необходимо заполнить шаблон документа Word через rest api. Я загружаю шаблон через админ панель и назначаю имена полей, значения которых я хочу получать через api. Не знаю как дальше быть
def post(self, request):
data = request.data # берем данные из post запроса
document = Documentt.objects.filter(id=data["doc_id"]) # ищем нужный пример документа
open_doc = Document(document[0].location) # открываем его
filename = ((str(document[0].location)).split('/')[-1]).split('.')[0] # создаем имя файла
fields = DocumentField.objects.filter(id=data["doc_id"]) # получаем поля для данного документа
# обрабатываем поля#####
context = {}
for field in fields:
# получаем имя поля
field_name = Field.objects.filter(name=str(field.field_id))
# добавляем строку в файл#####
context= {
f"{field_name}: {(data['field'][field_name])}"
}
open_doc.render(context)
if os.path.exists(f"user_files/{str(data['customer_id'])}"): # проверяем существует ли папка с id пользов.
pass
else:
os.mkdir(f"user_files/{str(data['customer_id'])}") # если не существует то создаем
open_doc.save('user_files/' + str(data['customer_id']) + '/' + filename + '.docx') # сохраняем файл
# проверяем наличие файла в бд
if len(DocumentResult.objects.filter(title=filename)) == 0:
cust = Customer.objects.get(id=data["customer_id"]) # получаем объект кастомера
res_doc = DocumentResult.objects.create(
title=filename,
customer=cust,
location='user_files/' + str(data['customer_id']) + '/' + filename + '.docx'
) # добавляем в бд
return Response({'status': 'Success!', 'link': res_doc.location}) # возвращаем успешный ответ
return Response({'status': 'Success!'})