def measles_mini_summary_csv(request, file_name): output = StringIO.StringIO() csvio = csv.writer(output) header = False summary = ReportCHWStatus.measles_mini_summary() rows = [] row = [] row.append("Facility") row.append("No. Vaccinated") row.append("No. Eligible") row.append("%") rows.append(row) for info in summary: info["percentage"] = round(float(float(info["vaccinated_cases"])/float(info["eligible_cases"]))*100, 2); row = [] row.append(u"%(clinic)s"%info) row.append(u"%(vaccinated_cases)s"%info) row.append(u"%(eligible_cases)s"%info) row.append(u"%(percentage)s%%"%info) rows.append(row) # Write rows on CSV for row in rows: csvio.writerow([cell for cell in row]) response = HttpResponse(mimetype='text/csv') response['Content-Disposition'] = "attachment; filename=%s" % file_name response.write(output.getvalue()) return response