def user_registration(request): if request.POST is not None and request.POST != {}: data = request.POST # Validate password and return error if not request.user.is_authenticated: if data['password'] != data['confirm_password']: messages.error(request, "Passwords didn't match") return render(request, 'user_reg.html') user_obj = None if request.user.is_authenticated: user_obj = User.objects.get(id=request.user.id) else: user_obj = User() user_obj.email = data['email'] user_obj.first_name = data['first_name'] user_obj.last_name = data['last_name'] username = user_obj.first_name if user_obj.last_name: username = username + user_obj.last_name user_obj.username = username.lower() if not request.user.is_authenticated: user_obj.set_password(data['password']) user_obj.save() user_profile = None if request.user.is_authenticated: # get_or_create is used while creating profile when user logged in via Google. user_profile, created = UserProfile.objects.get_or_create( user=request.user) else: user_profile = UserProfile() user_profile.user = user_obj user_profile.gender = data['gender'] user_profile.dob = data['dob'] user_profile.mobile_number = int(data['mobile']) if "alternate_mobile" in data and data[ 'alternate_mobile'] != "" and data[ 'alternate_mobile'] is not None: user_profile.alternate_number = int(data['alternate_mobile']) user_profile.blood_group = data['blood_group'] user_profile.address = data["formatted_address"] user_profile.save() if request.user.is_authenticated: messages.success(request, "User Updated.") return redirect('view_profile') messages.success(request, "User successfully created.") return render(request, 'user_reg.html')