diff --git a/ups_management/ups_manager/forms.py b/ups_management/ups_manager/forms.py index 679f234..8a66df3 100644 --- a/ups_management/ups_manager/forms.py +++ b/ups_management/ups_manager/forms.py @@ -4,13 +4,6 @@ from .models import UPSHost, Battery class UPSHostForm(forms.ModelForm): - last_maintenance_date = forms.DateField( - required=False, - label='上次维保时间', - input_formats=['%Y-%m-%d'], - widget=forms.DateInput(attrs={'class': 'form-control datepicker', 'placeholder': '选择日期'}, format='%Y-%m-%d'), - ) - class Meta: model = UPSHost fields = ['brand', 'model', 'ip_address', 'quantity', 'location', 'last_maintenance_date', 'contact'] @@ -20,6 +13,7 @@ class UPSHostForm(forms.ModelForm): 'ip_address': 'IP地址', 'quantity': '数量', 'location': '存放位置', + 'last_maintenance_date': '上次维保时间', 'contact': '联系人', } widgets = { @@ -28,6 +22,7 @@ class UPSHostForm(forms.ModelForm): 'ip_address': forms.TextInput(attrs={'class': 'form-control'}), 'quantity': forms.NumberInput(attrs={'class': 'form-control', 'min': '1'}), 'location': forms.TextInput(attrs={'class': 'form-control'}), + 'last_maintenance_date': forms.DateInput(attrs={'class': 'form-control datepicker', 'type': 'text', 'placeholder': 'YYYY-MM-DD'}), 'contact': forms.Select(attrs={'class': 'form-control'}), } @@ -51,6 +46,8 @@ class BatteryForm(forms.ModelForm): 'weight': forms.NumberInput(attrs={'class': 'form-control form-control-sm', 'step': '0.1'}), 'quantity': forms.NumberInput(attrs={'class': 'form-control form-control-sm', 'min': '1'}), 'location': forms.TextInput(attrs={'class': 'form-control form-control-sm'}), + 'install_date': forms.DateInput(attrs={'class': 'form-control form-control-sm datepicker-battery', 'type': 'text', 'placeholder': 'YYYY-MM-DD'}), + 'last_maintenance_date': forms.DateInput(attrs={'class': 'form-control form-control-sm datepicker-battery', 'type': 'text', 'placeholder': 'YYYY-MM-DD'}), } diff --git a/ups_management/ups_manager/views.py b/ups_management/ups_manager/views.py index 6808933..fcb0f87 100644 --- a/ups_management/ups_manager/views.py +++ b/ups_management/ups_manager/views.py @@ -118,14 +118,21 @@ class UPSHostUpdateView(UpdateView): return context def form_valid(self, form): - self.object = form.save() context = self.get_context_data() battery_formset = context['battery_formset'] + 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) + 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, + }) class UPSHostDeleteView(DeleteView):