コード例 #1
0
def register(request):
    registered = False

    if request.method == 'POST':
        user_form = UserForm(request.POST)
        profile_form = UserProfileInfoForm(request.POST)

        if user_form.is_valid and profile_form.is_valid:
            user = user_form.save()
            user.set_password(user.password)
            user.save()

            profile = profile_form.save(commit=False)
            profile.user = user

            if 'profile_picture' in request.FILES:
                profile.profile_picture = request.FILES['profile_picture']

            profile.save()

            registered = True
        else:
            print(user_form.errors,profile_form.errors)
    else:
        user_form = UserForm(request.POST)
        profile_form = UserProfileInfoForm(request.POST)
    return render(request,'user_app/registration.html',{'user_form':user_form,'profile_form':profile_form,'registered':registered})
コード例 #2
0
ファイル: views.py プロジェクト: edrubins/user_auth
def register(request):

    registered = False
    if request.method == 'POST':
        try:
            user_form = UserForm(data=request.POST)
            profile_form = UserProfileInfoForm(data=request.POST)
        except Exception as e:
            raise AttributeError(
                "UserProfileInfoForm has no 'request' attribute")

        try:
            if user_form.is_valid() and profile_form.is_valid():
                user = user_form.save()
                user.set_password(user.password)
                user.save()

                profile = profile_form.save(commit=False)
                profile.user = user
                if 'profile_pic' in request.FILES:
                    profile.profile_pic = request.FILES['profile_pic']

                profile.save()

                registered = True
        except:
            raise OSError(sys.exc_info()[0],
                          sys.exc_info()[1],
                          sys.exc_info()[2])

        else:
            user_form = UserForm
            profile_form = UserProfileInfoForm

        cntx = {
            'user_form': user_form,
            'profile_form': profile_form,
            'registered': registered
        }
        return render(request, 'user_app/registration.html', context=cntx)
    else:
        user_form = UserForm
        profile_form = UserProfileInfoForm
        cntx = {
            'user_form': user_form,
            'profile_form': profile_form,
            'registered': registered
        }
        return render(request, 'user_app/registration.html', context=cntx)
コード例 #3
0
def register(request):
    registered = False
    if request.method == "POST":
        user_form = UserForm(data=request.POST)
        profile_form = UserProfileInfoForm(data=request.POST)

        if user_form.is_valid() and profile_form.is_valid():
            user = user_form.save()
            # Hashing the password
            user.set_password(user.password)
            user.save()

            # Not commit to avoid overwriting
            profile = profile_form.save(commit=False)
            # For the OneToOne relationship with user
            profile.user = user

            if 'profile_pic' in request.FILES:
                # request.FILES is acting as a dictionary
                profile.profile_pic = request.FILES['profile_pic']

            profile.save()
            registered = True
        else:
            print(user_form.errors, profile_form.errors)
    else:
        user_form = UserForm()
        profile_form = UserProfileInfoForm()

    return render(
        request, 'user_app/registration.html', {
            'user_form': user_form,
            'profile_form': profile_form,
            'registered': registered
        })
コード例 #4
0
def sign_up(request):

    registered = False

    ##form = User_Form()
    if request.method == 'POST':
        user_form = User_Form(data = request.POST)
        profile_form = UserProfileInfoForm(data = request.POST)

        if user_form.is_valid() and profile_form.is_valid():
            user = user_form.save()
            user.set_password(user.password)
            user.save()
            profile = profile_form.save(commit =False)
            profile.user = user

            if 'profile_pic' is request.FILES:
                profile.profile_pic=request.FILES['profile_pic']

            profile.save()
            registered= True
        else:
            print(user_form.errors,profile_form.errors)
    else:
        user_form = User_Form()
        profile_form = UserProfileInfoForm()


    return render(request, 'user_app/sign_up.html',
                    {'user_form':user_form, 'profile_form':profile_form,'registered':registered})
コード例 #5
0
def register(request):

    registered = False

    if request.method == 'POST':

        # Get info from "both" forms
        # It appears as one form to the user on the .html page
        user_form = UserForm(data=request.POST)
        profile_form = UserProfileInfoForm(data=request.POST)

        # Check to see both forms are valid
        if user_form.is_valid() and profile_form.is_valid():

            # Save User Form to Database
            user = user_form.save()

            # Hash the password
            user.set_password(user.password)

            # Update with Hashed password
            user.save()

            # Now we deal with the extra info!

            # Can't commit yet because we still need to manipulate
            profile = profile_form.save(commit=False)

            # Set One to One relationship between
            # UserForm and UserProfileInfoForm
            profile.user = user

            # Check if they provided a profile picture
            if 'profile_pic' in request.FILES:
                print('found it')
                # If yes, then grab it from the POST form reply
                profile.profile_pic = request.FILES['profile_pic']

            # Now save model
            profile.save()

            # Registration Successful!
            registered = True

        else:
            # One of the forms was invalid if this else gets called.
            print(user_form.errors,profile_form.errors)

    else:
        # Was not an HTTP post so we just render the forms as blank.
        user_form = UserForm()
        profile_form = UserProfileInfoForm()

    # This is the render and context dictionary to feed
    # back to the registration.html file page.
    return render(request,'user_app/registration.html',
                          {'user_form':user_form,
                           'profile_form':profile_form,
                           'registered':registered})
コード例 #6
0
def register(request):
    # check if user is registered
    registered = False

    if request.method == 'POST':
        # grab information from user form
        user_form = UserForm(data=request.POST)
        # grab information from profile info form
        profile_form = UserProfileInfoForm(data=request.POST)

        # check if both forms are valid
        if user_form.is_valid() and profile_form.is_valid():

            # grab user form and save it to database
            user = user_form.save()
            # hash password with set method
            user.set_password(user.password)
            # save hashed password
            user.save()

            profile = profile_form.save(commit=False)
            # define one to one relationship
            profile.user = user

            # check for proile picture
            if 'profile_pic' in request.FILES:
                profile.profile_pic = request.FILES['profile_pic']

            # save model
            profile.save()
            # set user as registered
            registered = True

        else:
            # if either form is invalid print error
            print(user_form.errors, profile_form.errors)
    # if user never posts any information to forms, set user and profile forms
    else:
        user_form = UserForm()
        profile_form = UserProfileInfoForm()
    # return forms
    return render(
        request, 'user_app/registration.html', {
            'user_form': user_form,
            'profile_form': profile_form,
            'registered': registered
        })