2014-11-04 62 views
2

我希望讓用戶能夠用我的Django timefield組輸入到AM PM在Django timefield

目前AM和PM之間選擇,如果我進入:

11:00 AM

,我得到一個表格錯誤:「輸入有效的時間。」

如果我輸入:

11:00

形式沒有問題驗證。

我也試過:

class RemindersForm(forms.ModelForm): 

    remdinder = forms.TimeField(input_formats='%H:%M %p',) 

    class Meta: 
     model = NotificationPreference 
     fields = (
        'reminder', 
       ) 

這改變輸入格式:

11:00:00

和仍然給我上面的驗證錯誤。

我在做什麼錯?

TIME_INPUT_FORMATS =( '%H:%M%P','14#:30 AM」

回答

0

按照Django documentationpython's datetime docs,如果你改變的時候輸入設置它應該工作)

(未經測試)

+0

你是說把它添加到表單字段構造函數?另外,這個時間格式對我來說顯示爲14:30:00。這種格式是正確的嗎? – Atma 2014-11-04 18:24:18

+0

我對這個評論有點遲,但沒有14:30 AM這樣的事情開始。 – Tazavoo 2016-08-28 17:29:05

0

我覺得你可以做一些這樣的事在forms.py

field = DateTimeField(input_formats='%H:%M %p',...) 
+0

現在時間顯示爲14:30:00對我來說。這種格式是正確的嗎? – Atma 2014-11-04 18:57:45

4

爲了讓你可以使用下面的一個12小時的時間格式:

對於輸入(這是格式列表Django使用的驗證):

field = TimeField(input_formats=('%I:%M %p',...,...)) 

對於輸出(這是Django會使用的格式顯示時間值):

field = TimeField(widget=TimeInput(format='%I:%M %p')) 

%I表示12小時時鐘格式,而%H表示24小時時鐘格式。

此外,input_formats的默認列表可以在每個語言環境formats.py文件中找到。 Django使用input_formats列表中的第一種格式作爲時間字段的默認輸出格式。