def post(self, request, *args, **kwargs): user = request.user if user.is_anonymous(): form = UserForm(data=request.POST) if not form.is_valid(): return render(request, "register.html", {'form': form}) if not is_captcha_completed(request): form.add_error(None, "You must complete the reCaptcha to register!") return render(request, "register.html", {'form': form}) if not is_valid_captcha(request): form.add_error(None, "You are a robot!") return render(request, "register.html", {'form': form}) form.save() user = authenticate(username=request.POST['username'], password=request.POST['password1']) login(request, user) return HttpResponseRedirect("/") else: form = UserChangeForm(data=request.POST, instance=request.user) if not form.is_valid(): return render(request, "user/user_update.html", {'form': form}) clean_form = form.cleaned_data if clean_form['email']: user.email = clean_form['email'] if clean_form['first_name']: user.first_name = clean_form['first_name'] if clean_form['last_name']: user.last_name = clean_form['last_name'] user.save() return HttpResponseRedirect("/account")
def post(self, request, *args, **kwargs): user = request.user if user.is_anonymous(): form = UserForm(data=request.POST) if form.is_valid(): #Verify captcaha if not request.POST['g-recaptcha-response']: form.add_error(None, "You must complete the reCaptcha to register!") return render(request, "register.html", {'form': form}) captcha_data = urllib.parse.urlencode({ 'secret': settings.RECAPTCHA_PRIVATE_KEY, 'response': request.POST['g-recaptcha-response']}) captcha_data = captcha_data.encode('utf-8') res = urllib.request.urlopen( "https://www.google.com/recaptcha/api/siteverify", captcha_data) res = res.read().decode('utf-8') if 'false' in res: form.add_error(None, "You are a robot!") return render(request, "register.html", {'form': form}) user = form.save() user = authenticate(username=request.POST['username'], password=request.POST['password1']) login(request, user) return HttpResponseRedirect("/") else: return render(request, "register.html", {'form': form}) else: form = UserChangeForm(data=request.POST, instance=request.user) if not form.is_valid(): return render(request, "user/user_update.html", {'form': form}) clean_form = form.cleaned_data if clean_form['email']: user.email = clean_form['email'] if clean_form['first_name']: user.first_name = clean_form['first_name'] if clean_form['last_name']: user.last_name = clean_form['last_name'] user.save() return HttpResponseRedirect("/account")