def account_view(self, request, extra_context=None, token_generator=email_token_generator, *args, **kwargs):
		if request.method == 'POST':
			form = self.account_form(request.user, request.POST, request.FILES)
			
			if form.is_valid():
				message = "Account information saved."
				redirect = self.get_requirement_redirect(request, default='')
				if form.email_changed() and self.email_change_confirmation_email:
					email = form.reset_email()
					
					current_site = Site.objects.get_current()
					
					context = {
						'link': self.make_confirmation_link('email_change_confirm', token_generator, request.user, request.node, token_args=[email], reverse_kwargs={'email': email.replace('@', '+')}, secure=request.is_secure()),
						'user': request.user,
						'site': current_site,
						'request': request
					}
					self.send_confirmation_email('Confirm account email change at %s' % current_site.domain, email, self.email_change_confirmation_email, context)
					
					message = "An email has be sent to %s to confirm the email%s." % (email, " change" if bool(request.user.email) else "")
					if not request.user.email:
						message += " You will need to confirm the email before accessing pages that require a valid account."
						redirect = ''
				
				form.save()
				
				if redirect != '':
					message += " Here you go!"
				
				messages.add_message(request, messages.SUCCESS, message, fail_silently=True)
				return HttpResponseRedirect(redirect)
		else:
			form = self.account_form(request.user)
		
		context = self.get_context()
		context.update(extra_context or {})
		context.update({
			'form': form
		})
		return self.manage_account_page.render_to_response(request, extra_context=context)
Return a new Step object replacing specified fields with new values
dataset/ETHPy150Open ithinksw/philo/philo/contrib/waldo/models.py/AccountMultiView.account_view--crossover with--dataset/ETHPy150Open globocom/database-as-a-service/dbaas/region_migration/migration_steps.py/Step._replace