Exemple #1
0
def editProfile(request):	
	if request.user.is_authenticated():
		form =UserProfileForm(request.POST, request.FILES)
		if form.is_valid():
			cleaned_data = form.clean()

			#extract form info (could potentially use .serialize() to remove redundant code)
			first_name = cleaned_data['first_name'].strip()
			last_name = cleaned_data['last_name'].strip()
			email = cleaned_data['emailAddress']
			dorm = cleaned_data['dorm']
			pic = request.FILES.get('pic','')

			#update user fields
			user = User.objects.get(username = request.user)
			userdata = user.userdata
			user.first_name = first_name
			user.last_name = last_name
			user.email = email
			userdata.dorm = dorm

			if pic:
				userdata.pic = pic

			#save results
			user.save()
			userdata.save()

			#resubmit user data to pre-fill form
			data = {'first_name':user.first_name, 'last_name':user.last_name, 'emailAddress':user.email, 'dorm':userdata.dorm}
			form = UserProfileForm(initial=data)
			return render(request, 'editProfile.html', {'form':form})
		else: 

			#if a form error occurs
			user = request.user
			userdata = user.userdata
			
			#re-render the form - the html page will handle the error display
			data = {'first_name':user.first_name, 'last_name':user.last_name, 'emailAddress':user.email, 'dorm':userdata.dorm}
			form = UserProfileForm(initial = data)
			return render(request, 'editProfile.html', {'form':form})
	else:
		return HttpResponseRedirect('/login')