def user_profile_post(request, **kwargs): user=request.user form=RegistrationForm(request.POST) added_context={'registration_form': form} if not form.is_valid(user=user): form.reformat_errors() # log.debug('user %r not valid, aborting' % user.contributor) return render(request, 'registration/user_profile.html', added_context) user.first_name=form.cleaned_data['first_name'] user.last_name=form.cleaned_data['last_name'] user.email=form.cleaned_data['email'] user.password=make_password(form.cleaned_data['password1']) user.contributor.lab.name=form.cleaned_data['lab'] user.contributor.lab.url=form.cleaned_data['lab_url'] try: # log.debug('about to save user: %r' % user.contributor) user.save() added_context['msgs']='Profile successfully updated' except Exception as e: msgs='Unable to save user information: %s' % e added_context['msgs']=msgs # log.debug(msgs) return render(request, 'registration/user_profile.html', added_context)
def register_new_user(request): form=RegistrationForm(request.POST) # log.debug('hi, prospective new user') if not form.is_valid(): # try again # log.debug('form invalid, try again') form.reformat_errors() return render(request, 'registration/login.html', {'registration_form': form}) # check for previously existing user of that name: try: username=form.cleaned_data['username'] user=User.objects.get(username=username) form.errors['username']='******' % username # log.debug('username %s already taken' % username) form.reformat_errors() return render(request, 'registration/login.html', {'registration_form': form}) except User.DoesNotExist: # log.debug('no user %s, proceeding' % username) pass # create User: log.info('attempting to create new user %s' % form.cleaned_data['username']) username=form.cleaned_data['username'] first_name=form.cleaned_data['first_name'] last_name=form.cleaned_data['last_name'] password1=form.cleaned_data['password2'] password2=form.cleaned_data['password1'] email=form.cleaned_data['email'] lab_name=form.cleaned_data['lab'] lab_url=form.cleaned_data['lab_url'] user=User.objects.create_user(username, email, password1) user=auth.authenticate(username=username, password=password1) auth.login(request, user) log.info('new user %s logged in' % user.username) # create lab and contributor: try: lab=Lab.objects.get(name=lab_name) except Lab.DoesNotExist: lab=Lab(name=lab_name, url=lab_url) lab.save() # log.debug('new user: lab is %s' % lab) try: contributor=Contributor.objects.get(user=user) except Contributor.DoesNotExist: contributor=Contributor(user=user, first_name=first_name, last_name=last_name, lab=lab) contributor.save() # log.debug('contributor is %s' % contributor) url=reverse('user_profile', args=(user.username,)) return redirect(url)