Пример #1
0
def register(request):
    user_form = UserForm(request.POST or None)
    profile_form = ProfileForm(request.POST or None, request.FILES or None)
    if user_form.is_valid() and profile_form.is_valid():
        user = user_form.save(commit=False)
        try:
            validate_password(user_form.cleaned_data.get('password'), user)
        except ValidationError as e:
            user_form.add_error('password', e)
            return render(request,
                          'user/registration.html',
                          context={
                              'user_form': user_form,
                              'profile_form': profile_form,
                          })

        user.set_password(user.password)
        user.save()
        profile = profile_form.save(commit=False)
        profile.user = user
        profile.save()
    return render(request,
                  'user/registration.html',
                  context={
                      'user_form': user_form,
                      'profile_form': profile_form
                  })
Пример #2
0
def signup(request):
    if request.POST:
        try:
            form = UserForm(request.POST)

            if form.is_valid():
                user = form.save()
                user.first_name = form.cleaned_data['first_name']
                user.last_name = form.cleaned_data['last_name']
                user.username = form.cleaned_data['username']
                user.email = form.cleaned_data['email']
                user.password = form.cleaned_data['password']
                user.password_confirm = form.cleaned_data['password_confirm']
                user.set_password(user.password)
                user.save()

                return HttpResponseRedirect('/user/login')
            else:
                form.add_error(None, "Please enter all fields correctly")

        except IntegrityError:
            form.add_error(None, "Username is already taken")
            return render(request, 'accounts/create.html', {'form': form})
    else:
        form = UserForm()

    return render(request, 'accounts/create.html', {'form': form})