Недопустимый литерал для int() с основанием 10: 'Название товара' при экспорте в xls с помощью django и xlwt
Работая с библиотекой xlwt для экспорта документов Excel с помощью фреймворка Django, возникла следующая проблема:
недопустимый литерал для int() с основанием 10: 'Название продукта'
Я пытался использовать различные преобразования в типах данных, но это не помогло. Я хотел бы знать, как решить эту проблему, спасибо за любой совет.
models.py:
class Product(models.Model):
name = models.CharField(max_length=100, null=True)
quantity = models.PositiveIntegerField(null=True)
category = models.CharField(max_length=50, choices=CATEGORY, null=True)
def __str__(self):
return f'{self.name}'
views.py:
def export_excel(request):
response=HttpResponse(content_type='application/ms-excel')
response['Content-Disposition'] = 'attachment: filename=Expenses' + \
str(datetime.datetime.now())+'.xls'
wb = xlwt.Workbook(encoding='utf-8')
ws = wb.add_sheet('Expenses')
row_num = 0
font_style = xlwt.XFStyle()
font_style.font.bold = True
columns= ['Name of product', 'Category', 'Quantity']
for col_num in range(len(columns)):
ws.write(row_num, columns[col_num], font_style)
font_style = xlwt.XFStyle()
rows = Product.objects.filter(owner=request.user).values_list(
'name', 'quantity', 'category')
for row in rows:
row_num += 1
for col_num in range(len(row)):
ws.write(row_num, str(row[col_num]), font_style)
wb.save(response)
return response
Решил эту проблему, добавив один пропущенный пункт в логике взглядов
ws.write(row_num, col_num, columns[col_num], font_style)