Python XLWT外键值

我正在导出数据库字段为Excel文件,一切正常,但我的外键字段被打印为外键ID而不是实际值。

我该如何解决?

这里是我的代码:

book = xlwt.Workbook(encoding='utf8') sheet = book.add_sheet('Expense summary', cell_overwrite_ok=True) header_style = xlwt.easyxf('font:height 280, color blue, bold 1; border: bottom thick;') sum_style = xlwt.easyxf('font:height 200, color green, bold 1; border: top thick;') date_style = xlwt.XFStyle() date_style.num_format_str = 'DD-MM-YYYY' currency_style = xlwt.XFStyle() currency_style.num_format_str = '#,##0.00' xls_values = expense.filter( user=request.user.id).values_list('date', 'amount', 'towho', 'forwhat', 'category', 'payment_method') headers = (ugettext("Date"), ugettext("Amount"), ugettext("To who"), ugettext("For what"), ugettext("Category"), ugettext("Payment method")) for i, header in enumerate(headers): col_width = 256 * 20 sheet.col(i).width = col_width sheet.row(0).write(i, header, header_style) for row, rowdata in enumerate(xls_values): for col, val in enumerate(rowdata): if col == 0: sheet.write(row + 1, col, val, date_style) else: if col == 1: sheet.write(row + 1, col, val, currency_style) else: sheet.write(row + 1, col, val) response = HttpResponse(mimetype='application/vnd.ms-excel') response['Content-Disposition'] = 'attachment; filename=sample.xls' book.save(response) return response 

类别字段将返回ID号码而不是值。

提前致谢

而不是枚举rowdata ,按字段生成行字段:

 for row, o in enumerate(xls_values): sheet.write(row + 1, 0, o.my_first_field, date_style) sheet.write(row + 1, 1, o.my_second_field, val, currency_style) sheet.write(row + 1, 2, o.my_category_field.name, val) # assuming name is what you want