def register(request): if request.method == 'POST': form = RegisterForm(request.POST) if form.is_valid(): form.save() username = form.cleaned_data['email'] raw_password = form.cleaned_data['password1'] # Log in user = authenticate(username=username, password=raw_password) login(request, user) return redirect('search') else: form = RegisterForm() return render(request, 'web/register.html', {'form': form})
def signup(request): if request.method == 'GET': return render(request, 'signup.html', context={'form': RegisterForm()}) else: form = RegisterForm(request.POST) if form.is_valid(): # RegisterForm继承了UserCreationForm, 会完成用户密码强度检查,用户是否存在的验证 try: form.save(True) # 认证通过。直接保存到数据库 url = reverse('web:login') return HttpResponseRedirect(url) except: messages.error(request,'您的邮箱已注册!') url = reverse('web:signup') return HttpResponseRedirect(url) else: return render(request, 'signup.html', context={'form': form})
def register(request): if request.method == 'POST': prequest = request.POST form = RegisterForm(request.POST) #don't have validation if someone tries to use a username that has already been used. if form.is_valid(): form.save() user = authenticate(request, username=prequest['username'], password=prequest['password1']) if user is not None: login(request, user) return render(request, 'index.html') else: raise Http404("User is not logged in.") else: form = RegisterForm() return render(request, 'register.html', {'form': RegisterForm})
def register(request): errors = [] if request.method == 'POST': form = RegisterForm(request.POST) password1 = request.POST['password1'] password2 = request.POST['password2'] username = request.POST['username'] if len(User.objects.filter(username=username)) > 0: errors.append('نام کاربری شما در سیستم موجود است') if password1 != password2: errors.append('گذرواژه و تکرار گذرواژه یکسان نیستند') if form.is_valid(): form.save() return redirect('web:register') else: form = RegisterForm() print(errors) return render(request, 'register.html', { 'form': form, 'errors': errors, 'logged_in': request.user.is_authenticated })