def export(self, file_handle=None):
'''
exports the task questions and answers as a CSV
'''
try:
if not file_handle:
file_handle = StringIO.StringIO()
data = self.task.answers
# http://stackoverflow.com/a/11399424
# getting the union of all keys in all of the answer rows
headers = list(set().union(*(i.keys() for i in data)))
writer = csv.DictWriter(file_handle, fieldnames=headers)
writer.writeheader()
for row in data:
writer.writerow(row)
export_file = ContentFile(file_handle.getvalue())
export_filename = "ST_TASK_{task_id}_EXPORT_{date}.csv".format(task_id=self.task.id,
date=str(datetime.date.today()))
self.export_file.save(name=export_filename, content=export_file, save=False)
self.status = self.SUCCESS
except Exception as e:
LOG.exception(e)
self.status = self.FAILURE
self.save()
评论列表
文章目录