def update_profile(request): password_form = PasswordChangeForm(user=request.user) if request.method == 'POST': user_form = EditUserForm(request.POST, instance=request.user) profile_form = EditProfileForm(request.POST, instance=request.user.custom_user) if user_form.is_valid() and profile_form.is_valid(): user_form.save() user = profile_form.save(commit=False) user.photo = request.FILES.get('photo', user.photo) user.save() return redirect('website:profile', pk=user.id) else: user_form = EditUserForm(instance=request.user) profile_form = EditProfileForm(instance=request.user.custom_user) password_form._errors = request.session.pop('change_password_msg', None) return render(request, 'website/edit_profile.html', { 'user_form': user_form, 'profile_form': profile_form, 'password_form': password_form, 'role': ROLE_CHOICES[request.user.custom_user.role - 1][1] })