def register(request): if request.method == 'GET': return render( request, 'register.html', {'title': 'Регистрация', 'user': request.user} ) if request.method == 'POST': username = request.POST.get('username', '') password = request.POST.get('password', '') pass_rep = request.POST.get('pass_rep', '') if '' in (username, password, pass_rep): messages.add_message(request, messages.ERROR, 'Заполните все поля') return redirect('/register') if password != pass_rep: messages.add_message(request, messages.ERROR, 'Пароли не совпадают') return redirect('/register') if User.objects.filter(username=username).exists(): messages.add_message(request, messages.ERROR, 'Логин занят') return redirect('/register') user = User.objects.create_user(username=username, password=password) user.save() user_profile = UserProfile(user=user, admin=False) login(request, user) return redirect('/')
def google_signup(request): context = {} if request.method == 'GET': email = request.GET.get('email') name = request.GET.get('name') context.update({'name': name, 'email': email}) if request.method == 'POST': email = request.POST.get('email', None) name = request.POST.get('username', None) password = request.POST.get('password', None) role = request.POST.get('role', None).lower() if User.objects.filter(email=email).exists(): context.update({'email_exists': True}) return render(request, "myapp/google-signup.html", context) if User.objects.filter(username=name).exists(): context.update({'user_exists': True}) return render(request, "myapp/google-signup.html", context) if email and name and password and role: user = User.objects.create_user(username=name, email=email, password=password) profile = UserProfile(user=user, role=role) profile.save() send_verify_code(email) login(request, user) return redirect('home') context = {'missing_info': True} return render(request, "myapp/google-signup.html", context)
def save_profile(sender, instance, created, **kwargs): if created: profile = UserProfile(user=instance, first_name=instance.first_name, last_name=instance.last_name) profile.save()