def post(self, request, format=None): pdb.set_trace() # html POST if request.accepted_renderer.format == 'html': user_form = UserForm(request.POST) buy_form = BuyForm(request.POST) # check form's validity if user_form.is_valid() and buy_form.is_valid(): # check former undone request with same email old_users = User.objects.filter(email=user_form.cleaned_data['email']) #old_reqs = Buy.objects.filter(email=form.cleaned_data['email']).filter(is_done=False) if (old_users.count() > 0): data = {'msg':'save failed. same email exists', 'errcode':'101'} resp_status = status.HTTP_409_CONFLICT # send confirm mail after save else: try: user = user_form.save(commit=False) user.is_active = False user.set_password(user.password) buy = buy_form.save(commit=False) user.save() buy.user = user buy.cellphone = buy.cellphone.translate({ord('-'):None}) buy.save() except StandardError: if not user == None: User.objects.filter(id = user.id).delete() resp_status = status.HTTP_400_BAD_REQUEST else: self.send_email(buy.id, user.email) data = {'msg':'saved', 'errcode':'000'} resp_status = status.HTTP_201_CREATED # invalid form else: msg = 'invalid form' if not user_form.is_valid(): msg += ' - ' + str(user_form.errors) if not buy_form.is_valid(): msg += ' - ' + str(dealer_form.errors) data = {'msg':msg, 'errcode':'103'} resp_status = status.HTTP_400_BAD_REQUEST return Response(data, status = resp_status, template_name='consumer_request_result.html') # Mobile POST else: user = NewUserSerializer(data=request.DATA) buy = BuyNewSerializer(data=request.DATA) if user.is_valid() and buy.is_valid(): # check former undone request with same email old_users = User.objects.filter(email=request.DATA['email']) #oldReqs = Buy.objects.filter(email=serializer.data['email']).filter(is_done=False) if (old_users.count() > 0): data = {'msg':'save failed. same email exists', 'errcode':'101'} resp_status = status.HTTP_409_CONFLICT # send confirm mail after save else: try: saved_user = user.save() saved_user.is_active = False saved_user.set_password(saved_user.password) saved_user.save() saved_buy = buy.save() saved_buy.user = saved_user saved_buy.cellphone = saved_buy.cellphone.translate({ord('-'):None}) saved_buy.save() except StandardError: if not saved_user == None: User.objects.filter(id = saved_user.id).delete() resp_status = status.HTTP_400_BAD_REQUEST else: self.send_email(saved_buy.id, saved_user.email) data = {'msg':'saved', 'errcode':'000'} resp_status = status.HTTP_201_CREATED else: data = {'msg':'invalid request', 'errcode':'102'} resp_status = status.HTTP_400_BAD_REQUEST return Response(data, status = resp_status)
def post(self, request, format=None): pdb.set_trace() # html POST if request.accepted_renderer.format == 'html': is_registered = False user_form = UserForm(request.POST) dealer_form = DealerNewForm(request.POST) # check form's validity if user_form.is_valid() and dealer_form.is_valid(): # check former undone request with same email old_users = User.objects.filter(email=user_form.cleaned_data['email']) if (old_users.count() > 0): msg = 'register failed. same email exists' resp_code = '101' resp_status = status.HTTP_409_CONFLICT else: user = user_form.save(commit=False) user.is_active = False user.set_password(user.password) dealer = dealer_form.save(commit=False) user.save() dealer.user = user dealer.phone = dealer.phone.translate({ord('-'):None}) dealer.save() # send confirm mail after save self.send_email(user.id, user.email) msg = 'saved' resp_code = '000' resp_status = status.HTTP_201_CREATED is_registered = True # invalid form else: msg = 'invalid form' if not user_form.is_valid(): msg += ' - ' + str(user_form.errors) if not dealer_form.is_valid(): msg += ' - ' + str(dealer_form.errors) resp_code = '103' resp_status = status.HTTP_400_BAD_REQUEST data = {'msg':msg, 'resp code':resp_code} return Response(data, status = resp_status, template_name='dealer_register_result.html') # Mobile POST else: # WANING!! model dealer need used id. client send temporary uid 1 user = NewUserSerializer(data=request.DATA) dealer = NewDealerSerializer(data=request.DATA) if user.is_valid() and dealer.is_valid(): # check former undone request with same email old_users = User.objects.filter(email=request.DATA['email']) if (old_users.count() > 0): resp_status = status.HTTP_409_CONFLICT else: try: user.save() user.is_active = False user.set_password(user.password) user.save() dealer.save() dealer.user = user dealer.phone = dealer.phone.translate({ord('-'):None}) dealer.save() #user = user_serializer.save() #user.is_active = False #user.set_password(user.password) #user.save() #dealer = dealer_serializer.save() #dealer.user = user #dealer.save() except StandardError: if not user == None: User.objects.filter(id = user.id).delete() resp_status = status.HTTP_400_BAD_REQUEST else: # send confirm mail after save self.send_email(user.id, user.email) resp_status = status.HTTP_201_CREATED else: resp_status = status.HTTP_400_BAD_REQUEST return Response(status = resp_status)