Пример #1
0
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')