我覆盖了时间输入小部件,但是当我提交该表单时,显示“输入有效时间”
class TimePickerWidget(forms.TimeInput):
def render(self, name, value, attrs=None):
htmlString = u''
htmlString += u'<select name="%s">' % (name)
for i in range(12):
htmlString += ('<option value="%d:00 AM">%d:00 AM</option>' % (i,i))
htmlString +='</select>'
return mark_safe(u''.join(htmlString))
如你所见,它制作了时间选择的下拉框。在形式上,它被称为
class JobForm (ModelForm):
fromHour = forms.TimeField(widget=TimePickerWidget(format='%I:%M %p'))
toHour = forms.TimeField(widget=TimePickerWidget(format='%I:%M %p'))
我有两个问题。
1) 当我提交时,会显示“输入有效时间”。我该如何解决这个问题?
2) 有什么方法可以将 format='%I:%M %p' 格式封装到 TimePicketWidget 中吗?
最佳答案
将input_format
参数设置为TimeField ,即:
fromHour = forms.TimeField(input_format='%I:%M %p', widget=TimePickerWidget(format='%I:%M %p'))
关于django:表单 - 覆盖时间输入小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13798196/