3

我覆盖了时间输入小部件,但是当我提交该表单时,会显示“输入有效时间”

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?

4

1 回答 1

0

input_format参数设置为TimeField,即:

fromHour = forms.TimeField(input_format='%I:%M %p', widget=TimePickerWidget(format='%I:%M %p'))
于 2012-12-10T10:38:06.037 回答