From e6ef4bcf0e19e0230c23d6c1c621a974c98cfb9d Mon Sep 17 00:00:00 2001 From: xiaji Date: Thu, 30 Apr 2026 17:11:09 +0800 Subject: [PATCH] Fix form_valid to always save UPS host even if battery formset fails --- ups_management/ups_manager/views.py | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/ups_management/ups_manager/views.py b/ups_management/ups_manager/views.py index fcb0f87..3143639 100644 --- a/ups_management/ups_manager/views.py +++ b/ups_management/ups_manager/views.py @@ -118,21 +118,15 @@ class UPSHostUpdateView(UpdateView): return context def form_valid(self, form): - context = self.get_context_data() - battery_formset = context['battery_formset'] + self.object = form.save() - if battery_formset.is_valid(): - self.object = form.save() - battery_formset.instance = self.object - battery_formset.save() - messages.success(self.request, 'UPS主机和电池信息已更新') - return redirect(self.success_url) - else: - return render(self.request, self.template_name, { - 'form': form, - 'battery_formset': battery_formset, - 'object': self.object, - }) + if self.request.POST: + battery_formset = BatteryFormSet(self.request.POST, instance=self.object) + if battery_formset.is_valid(): + battery_formset.save() + + messages.success(self.request, 'UPS主机和电池信息已更新') + return redirect(self.success_url) class UPSHostDeleteView(DeleteView):