def get(self): self.response.headers['Content-Type'] = 'application/csv' self.response.headers['Content-Disposition'] = 'attachment; filename=summary.csv' orders = Orders.get_all() writer = csv.writer(self.response.out) writer.writerow(['Name', 'Email', 'Phone', 'Orders', "Total"]) for i in orders: items = "" total = 0 for j in i.orders: value1 = 0 if j['qty'] is None else j['qty'] total += (value1 * j['price']) items += "%s %s ; " % (j['name'], value1) row = i.name, i.email, i.phone, items, total writer.writerow(row)
def post(self): orders = Orders.get_all() ret = [] dd = defaultdict(int) for i in orders: ret.append(i.to_dict()) for j in i.orders: value1 = 0 if j['qty'] is None else j['qty'] dd[j['name']] += value1 agg = [] for key, value in dd.items(): agg.append({ 'name': key, 'qty': value }) if len(ret) > 0: self.response.write(json.dumps({ 'ret': ret, 'agg': agg })) else: self.response.write(json.dumps(None))