Fix date field with manual input binding to flatpickr
This commit is contained in:
@@ -4,12 +4,6 @@ from .models import UPSHost, Battery
|
|||||||
|
|
||||||
|
|
||||||
class UPSHostForm(forms.ModelForm):
|
class UPSHostForm(forms.ModelForm):
|
||||||
last_maintenance_date = forms.CharField(
|
|
||||||
required=False,
|
|
||||||
label='上次维保时间',
|
|
||||||
widget=forms.TextInput(attrs={'class': 'form-control datepicker', 'placeholder': '选择日期'}),
|
|
||||||
)
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = UPSHost
|
model = UPSHost
|
||||||
fields = ['brand', 'model', 'ip_address', 'quantity', 'location', 'last_maintenance_date', 'contact']
|
fields = ['brand', 'model', 'ip_address', 'quantity', 'location', 'last_maintenance_date', 'contact']
|
||||||
@@ -19,6 +13,7 @@ class UPSHostForm(forms.ModelForm):
|
|||||||
'ip_address': 'IP地址',
|
'ip_address': 'IP地址',
|
||||||
'quantity': '数量',
|
'quantity': '数量',
|
||||||
'location': '存放位置',
|
'location': '存放位置',
|
||||||
|
'last_maintenance_date': '上次维保时间',
|
||||||
'contact': '联系人',
|
'contact': '联系人',
|
||||||
}
|
}
|
||||||
widgets = {
|
widgets = {
|
||||||
@@ -27,14 +22,10 @@ class UPSHostForm(forms.ModelForm):
|
|||||||
'ip_address': forms.TextInput(attrs={'class': 'form-control'}),
|
'ip_address': forms.TextInput(attrs={'class': 'form-control'}),
|
||||||
'quantity': forms.NumberInput(attrs={'class': 'form-control', 'min': '1'}),
|
'quantity': forms.NumberInput(attrs={'class': 'form-control', 'min': '1'}),
|
||||||
'location': forms.TextInput(attrs={'class': 'form-control'}),
|
'location': forms.TextInput(attrs={'class': 'form-control'}),
|
||||||
|
'last_maintenance_date': forms.TextInput(attrs={'class': 'form-control datepicker', 'placeholder': '选择日期'}),
|
||||||
'contact': forms.Select(attrs={'class': 'form-control'}),
|
'contact': forms.Select(attrs={'class': 'form-control'}),
|
||||||
}
|
}
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
|
||||||
super().__init__(*args, **kwargs)
|
|
||||||
if self.instance and self.instance.pk and self.instance.last_maintenance_date:
|
|
||||||
self.fields['last_maintenance_date'].initial = self.instance.last_maintenance_date.strftime('%Y-%m-%d')
|
|
||||||
|
|
||||||
def clean_last_maintenance_date(self):
|
def clean_last_maintenance_date(self):
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
date_str = self.cleaned_data.get('last_maintenance_date')
|
date_str = self.cleaned_data.get('last_maintenance_date')
|
||||||
@@ -47,17 +38,6 @@ class UPSHostForm(forms.ModelForm):
|
|||||||
|
|
||||||
|
|
||||||
class BatteryForm(forms.ModelForm):
|
class BatteryForm(forms.ModelForm):
|
||||||
install_date = forms.CharField(
|
|
||||||
required=False,
|
|
||||||
label='安装日期',
|
|
||||||
widget=forms.TextInput(attrs={'class': 'form-control form-control-sm datepicker-battery', 'placeholder': '选择日期'}),
|
|
||||||
)
|
|
||||||
last_maintenance_date = forms.CharField(
|
|
||||||
required=False,
|
|
||||||
label='上次维保时间',
|
|
||||||
widget=forms.TextInput(attrs={'class': 'form-control form-control-sm datepicker-battery', 'placeholder': '选择日期'}),
|
|
||||||
)
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Battery
|
model = Battery
|
||||||
fields = ['brand', 'model', 'weight', 'quantity', 'location', 'install_date', 'last_maintenance_date']
|
fields = ['brand', 'model', 'weight', 'quantity', 'location', 'install_date', 'last_maintenance_date']
|
||||||
@@ -67,6 +47,8 @@ class BatteryForm(forms.ModelForm):
|
|||||||
'weight': '重量(kg)',
|
'weight': '重量(kg)',
|
||||||
'quantity': '数量',
|
'quantity': '数量',
|
||||||
'location': '存放位置',
|
'location': '存放位置',
|
||||||
|
'install_date': '安装日期',
|
||||||
|
'last_maintenance_date': '上次维保时间',
|
||||||
}
|
}
|
||||||
widgets = {
|
widgets = {
|
||||||
'brand': forms.TextInput(attrs={'class': 'form-control form-control-sm'}),
|
'brand': forms.TextInput(attrs={'class': 'form-control form-control-sm'}),
|
||||||
@@ -74,16 +56,10 @@ class BatteryForm(forms.ModelForm):
|
|||||||
'weight': forms.NumberInput(attrs={'class': 'form-control form-control-sm', 'step': '0.1'}),
|
'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'}),
|
'quantity': forms.NumberInput(attrs={'class': 'form-control form-control-sm', 'min': '1'}),
|
||||||
'location': forms.TextInput(attrs={'class': 'form-control form-control-sm'}),
|
'location': forms.TextInput(attrs={'class': 'form-control form-control-sm'}),
|
||||||
|
'install_date': forms.TextInput(attrs={'class': 'form-control form-control-sm datepicker-battery', 'placeholder': '选择日期'}),
|
||||||
|
'last_maintenance_date': forms.TextInput(attrs={'class': 'form-control form-control-sm datepicker-battery', 'placeholder': '选择日期'}),
|
||||||
}
|
}
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
|
||||||
super().__init__(*args, **kwargs)
|
|
||||||
if self.instance and self.instance.pk:
|
|
||||||
if self.instance.install_date:
|
|
||||||
self.fields['install_date'].initial = self.instance.install_date.strftime('%Y-%m-%d')
|
|
||||||
if self.instance.last_maintenance_date:
|
|
||||||
self.fields['last_maintenance_date'].initial = self.instance.last_maintenance_date.strftime('%Y-%m-%d')
|
|
||||||
|
|
||||||
def clean_install_date(self):
|
def clean_install_date(self):
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
date_str = self.cleaned_data.get('install_date')
|
date_str = self.cleaned_data.get('install_date')
|
||||||
|
|||||||
@@ -87,7 +87,12 @@
|
|||||||
<label for="{{ form.last_maintenance_date.id_for_label }}" class="form-label font-weight-semibold">
|
<label for="{{ form.last_maintenance_date.id_for_label }}" class="form-label font-weight-semibold">
|
||||||
{{ form.last_maintenance_date.label }}
|
{{ form.last_maintenance_date.label }}
|
||||||
</label>
|
</label>
|
||||||
{{ form.last_maintenance_date }}
|
<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="选择日期">
|
||||||
{% if form.last_maintenance_date.errors %}
|
{% if form.last_maintenance_date.errors %}
|
||||||
{% for error in form.last_maintenance_date.errors %}
|
{% for error in form.last_maintenance_date.errors %}
|
||||||
<div class="invalid-feedback d-block">{{ error }}</div>
|
<div class="invalid-feedback d-block">{{ error }}</div>
|
||||||
@@ -182,7 +187,7 @@
|
|||||||
class="form-control form-control-sm datepicker-battery"
|
class="form-control form-control-sm datepicker-battery"
|
||||||
id="{{ battery_form.install_date.id_for_label }}"
|
id="{{ battery_form.install_date.id_for_label }}"
|
||||||
name="{{ battery_form.install_date.name }}"
|
name="{{ battery_form.install_date.name }}"
|
||||||
value="{{ battery_form.install_date.value|date:'Y-m-d' }}"
|
{% if battery_form.instance.install_date %}value="{{ battery_form.instance.install_date|date:'Y-m-d' }}"{% endif %}
|
||||||
placeholder="选择日期">
|
placeholder="选择日期">
|
||||||
{% if battery_form.install_date.errors %}
|
{% if battery_form.install_date.errors %}
|
||||||
{% for error in battery_form.install_date.errors %}
|
{% for error in battery_form.install_date.errors %}
|
||||||
@@ -195,7 +200,7 @@
|
|||||||
class="form-control form-control-sm datepicker-battery"
|
class="form-control form-control-sm datepicker-battery"
|
||||||
id="{{ battery_form.last_maintenance_date.id_for_label }}"
|
id="{{ battery_form.last_maintenance_date.id_for_label }}"
|
||||||
name="{{ battery_form.last_maintenance_date.name }}"
|
name="{{ battery_form.last_maintenance_date.name }}"
|
||||||
value="{{ battery_form.last_maintenance_date.value|date:'Y-m-d' }}"
|
{% if battery_form.instance.last_maintenance_date %}value="{{ battery_form.instance.last_maintenance_date|date:'Y-m-d' }}"{% endif %}
|
||||||
placeholder="选择日期">
|
placeholder="选择日期">
|
||||||
{% if battery_form.last_maintenance_date.errors %}
|
{% if battery_form.last_maintenance_date.errors %}
|
||||||
{% for error in battery_form.last_maintenance_date.errors %}
|
{% for error in battery_form.last_maintenance_date.errors %}
|
||||||
|
|||||||
Reference in New Issue
Block a user