class Task(models.Model):
Id=models.IntegerField()
Name=models.CharField(max_length=50,null=False,blank=True)
Image1=models.FileField(blank=True, default="",
upload_to="media/images",null=True)
Image2=models.FileField(blank=True, default="",
upload_to="media/images",null=True)
Date=models.DateField(null=True,blank=True)
def __str__(self):
return str(self.Name)
class TaskViewSet(viewsets.ViewSet):
def list(self, request):
try:
response=HttpResponse(content_type='application/ms-excel')
response['Content-Disposition']='attachment; filename="users.xls"'
wb=xlwt.Workbook(encoding='utf-8')
ws=wb.add_sheet('Tasks', cell_overwrite_ok=True)
row_num=0
font_style=xlwt.XFStyle()
font_style.font.bold=True
columns=['Id','Name','Image1','Image2','Date']
for col_num in range(len(columns)):
ws.write(row_num,col_num,columns[col_num],font_style)
font_style=xlwt.XFStyle()
data=Task.objects.all()#.values_list('Id','Name','Image1','Image2','Date')
date_format = xlwt.XFStyle()
date_format.num_format_str = 'yyyy/mm/dd'
for my_row in data:
row_num+=1
ws.write(row_num,0,my_row.Id,font_style)
ws.write(row_num,1,my_row.Name,font_style)
#ws.write(row_num,2,my_row.Image1.url,font_style)
ws.write(row_num,3,my_row.Image2.url,font_style)
ws.write(row_num,4,str(my_row.Date),font_style)
wb.save(response)
print(my_row.Date)
return response
except Exception as error:
traceback.print_exc()
return Response({"message": str(error), "success": False}, status=status.HTTP_200_OK)