2012-12-10 45 views
3

我overrided時間輸入小部件,但是當我提交表單「輸入一個有效的時間」顯示Django的:形式 - 壓倒一切的時候輸入小部件

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中嗎?

回答

0

設置input_format參數TimeField,即:

fromHour = forms.TimeField(input_format='%I:%M %p', widget=TimePickerWidget(format='%I:%M %p'))