def user_profile_edit(request, pk): user = User.objects.get(pk=pk) if request.user != user.userprofile.user: return render(request, 'no_permission.html') if request.method == 'GET': context = { 'form_user_profile': UserProfileEditForm(instance=user), 'form_profile': ProfileForm(instance=user.userprofile), } return render(request, 'accounts/profile_edit.html', context) else: form_user = UserProfileEditForm(request.POST, instance=user) form_profile = ProfileForm(request.POST, request.FILES, instance=user.userprofile) if form_user.is_valid() and form_profile.is_valid(): form_user.save() form_profile.save() return redirect('user profile', user.pk) context = { 'form_user_profile': UserProfileEditForm(instance=user), 'form_profile': ProfileForm(instance=user.userprofile), } return render(request, 'accounts/profile_edit.html', context)
class EditProfileView(LoginRequiredMixin, UpdateView): template_name = 'edit.html' user_form = UserEditForm profile_form = UserProfileEditForm def get(self, request, *args, **kwargs): self.user_form = UserEditForm(instance=request.user) self.profile_form = UserProfileEditForm( instance=request.user.userprofile) return render(request, self.template_name, context={ 'user_form': self.user_form, 'profile_form': self.profile_form }) def post(self, request, *args, **kwargs): self.user_form = UserEditForm(instance=request.user, data=request.POST) self.profile_form = UserProfileEditForm( instance=request.user.userprofile, data=request.POST, files=request.FILES) if self.user_form.is_valid() and self.profile_form.is_valid(): self.user_form.save() self.profile_form.save() messages.success(request, 'Profile updated successfully') else: messages.error(request, 'Error') return render(request, self.template_name, { 'user_form': self.user_form, 'profile_form': self.profile_form })
def edit_profile(request, username): if request.method == "POST": form = ProfileEditForm(request.POST, instance=request.user) profile_form = UserProfileEditForm(request.POST, request.FILES, instance=request.user.profile) if form.is_valid() and profile_form.is_valid(): form.save() profile_form.save() return redirect('account_profile', username=username) else: form = ProfileEditForm(instance=request.user) profile_form = UserProfileEditForm(instance=request.user.profile) return render(request, 'profile/edit_profile.html', { 'form': form, 'profile': profile_form })
def edit(request): if request.method == 'POST': """ ??? """ user_form = UserEditForm(instance=request.user, data=request.POST) profile_form = UserProfileEditForm(instance=request.user.userprofile, data=request.POST, files=request.FILES) if user_form.is_valid() and profile_form.is_valid(): user_form.save() profile_form.save() else: user_form = UserEditForm(instance=request.user) profile_form = UserProfileEditForm(instance=request.user.userprofile) return render(request, 'accounts/edit.html', { 'user_form': user_form, 'profile_form': profile_form })
def edit_profile(request): """ Creates a view that allows the user to edit its profile fields """ if request.method == 'POST': user_form = UserEditForm(instance = request.user, data=request.POST) profile_form = UserProfileEditForm(instance = request.user.userprofile, data=request.POST, files=request.FILES) if user_form.is_valid() and profile_form.is_valid(): user_form.save() profile_form.save() messages.success(request, "Profile updated successfully") return view_profile(request) else: messages.error(request, "Error updating your profile") else: user_form = UserEditForm(instance=request.user) profile_form = UserProfileEditForm(instance=request.user.userprofile) return render(request, 'edit_profile.html', {'user_form': user_form, 'profile_form': profile_form})