Fix UPS host form with custom form class for date handling
This commit is contained in:
@@ -3,6 +3,30 @@ from django.forms import inlineformset_factory
|
||||
from .models import UPSHost, Battery
|
||||
|
||||
|
||||
class UPSHostForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = UPSHost
|
||||
fields = ['brand', 'model', 'ip_address', 'quantity', 'location', 'last_maintenance_date', 'contact']
|
||||
labels = {
|
||||
'brand': '品牌',
|
||||
'model': '型号',
|
||||
'ip_address': 'IP地址',
|
||||
'quantity': '数量',
|
||||
'location': '存放位置',
|
||||
'last_maintenance_date': '上次维保时间',
|
||||
'contact': '联系人',
|
||||
}
|
||||
widgets = {
|
||||
'brand': forms.TextInput(attrs={'class': 'form-control'}),
|
||||
'model': forms.TextInput(attrs={'class': 'form-control'}),
|
||||
'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'}),
|
||||
'contact': forms.Select(attrs={'class': 'form-control'}),
|
||||
}
|
||||
|
||||
|
||||
class BatteryForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = Battery
|
||||
|
||||
@@ -87,12 +87,7 @@
|
||||
<label for="{{ form.last_maintenance_date.id_for_label }}" class="form-label font-weight-semibold">
|
||||
{{ form.last_maintenance_date.label }}
|
||||
</label>
|
||||
<input type="text"
|
||||
id="{{ form.last_maintenance_date.id_for_label }}"
|
||||
name="{{ form.last_maintenance_date.name }}"
|
||||
class="form-control datepicker"
|
||||
{% if form.instance.last_maintenance_date %}value="{{ form.instance.last_maintenance_date|date:'Y-m-d' }}"{% endif %}
|
||||
placeholder="选择日期">
|
||||
{{ form.last_maintenance_date }}
|
||||
{% if form.last_maintenance_date.errors %}
|
||||
{% for error in form.last_maintenance_date.errors %}
|
||||
<div class="invalid-feedback d-block">{{ error }}</div>
|
||||
|
||||
@@ -3,7 +3,7 @@ from django.views.generic import ListView, CreateView, UpdateView, DeleteView
|
||||
from django.urls import reverse_lazy
|
||||
from django.contrib import messages
|
||||
from .models import UPSHost, Battery, Contact, Supplier, MaintenanceRecord
|
||||
from .forms import BatteryFormSet
|
||||
from .forms import BatteryFormSet, UPSHostForm
|
||||
|
||||
|
||||
class DashboardView(ListView):
|
||||
@@ -99,14 +99,14 @@ class UPSHostListView(ListView):
|
||||
class UPSHostCreateView(CreateView):
|
||||
model = UPSHost
|
||||
template_name = 'ups_manager/ups_form.html'
|
||||
fields = ['brand', 'model', 'ip_address', 'quantity', 'location', 'last_maintenance_date', 'contact']
|
||||
form_class = UPSHostForm
|
||||
success_url = reverse_lazy('ups_list')
|
||||
|
||||
|
||||
class UPSHostUpdateView(UpdateView):
|
||||
model = UPSHost
|
||||
template_name = 'ups_manager/ups_form.html'
|
||||
fields = ['brand', 'model', 'ip_address', 'quantity', 'location', 'last_maintenance_date', 'contact']
|
||||
form_class = UPSHostForm
|
||||
success_url = reverse_lazy('ups_list')
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
|
||||
Reference in New Issue
Block a user