У меня формируется и скачивается отчёт по кнопке на компьютер, мне нужно, чтобы файл записывался в БД
Вот моя view
def download_excel(request):
cats = Cat.objects.all()
wb = Workbook()
ws = wb.active
ws.column_dimensions['B'].width = 75
ws.column_dimensions['C'].width = 35
ws.column_dimensions['D'].width = 35
first_cat = True
for cat in cats:
if not first_cat:
ws.append([])
ws.append([cat.name])
ws.merge_cells(start_row=ws.max_row, start_column=1, end_row=ws.max_row, end_column=6)
ws.cell(row=ws.max_row, column=1).alignment = Alignment(horizontal='center')
if first_cat:
ws.append(['#', 'Виды работ', 'Единица работы', "Норма времени в часах", "План", "Факт"])
first_cat = False
cat_sections_data = [
[index + 1, section.name, section.unit, section.hours, section.plan, section.actual]
for index, section in enumerate(cat.sections.all())
]
for row in cat_sections_data:
ws.append(row)
response = HttpResponse(content_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
response['Content-Disposition'] = 'attachment; filename="cats_sections.xlsx"'
wb.save(response)
return response
Страница с кнопкой
<div class="content-section">
<h2>Категории</h2>
{% if not user|has_group:"User" %}
<a href="{% url 'download_excel' %}" class="btn btn-primary">Отчет</a>
{% endif %}
<ul>
{% for cat in cats %}
<li>
<a href="{% url 'cat_detail' cat.id %}">{{ cat.name }}</a>
</li>
{% endfor %}
</ul>
</div>
{% endblock content %}