def post(self, request, format=None): date = request.DATA.get('date') try: activity = Activity.objects.get(name=request.DATA.get('activity')) except Activity.DoesNotExist: activity = Activity(name=request.DATA.get('activity'), average_price=0) activity.save() p = Process(date=request.DATA.get('date'), activity=activity, average_price=0) p.save() consumer_list = json.loads(request.DATA.get('list')) user_to_be_saved = [] total = 0 try: for num, i in enumerate(consumer_list): name = i.get('name') prepay = i.get('prepay') consume = i.get('consume') #check name user = User.objects.get(name=name) p.participants.add(user) #user money user.remain += prepay - consume user_to_be_saved.append(user) total += consume #send email except: print sys.exc_info() p.delete() return Response(status=404) #caculate the average price of process p.average_price =total/(num +1) #caculate the average price of activity if p.average_price == 0: activity.average_price = p.average_price else: activity.average_price = (p.average_price + activity.average_price)/2 p.save() for i in user_to_be_saved: i.save() return Response({"detail":"success"} ,status=200)