2016-12-24 36 views
0

有沒有辦法在使用CreateView或UpdateView時更改日期時間字段的格式?我試圖讓表單接受日期的形式,如"2016-12-29 03:49 PM"。我知道格式應該是'%Y-%m-%d %I:%M %p',而且這個測試在shell中很好。我只是不知道如何使用CreateView或UpdateView來工作,但似乎應該可以完成。如何在基於類的視圖中更改django中的時間格式

回答

1

您需要更新表單類以接受其他輸入格式。表單應是這個樣子:

class YourForm(ModelForm): 
    date_of_birth = DateTimeField(input_formats='%Y-%m-%d %I:%M %p') 
    class Meta: 
     model = YourModel 

但是,它可能不如把所有的可接受的輸入格式的變量,並從你的settings.py這樣稱呼它:

settings.py 
DATE_INPUT_FORMATS = [ 
    '%Y-%m-%d %H:%M:%S', 
    '%m/%d/%Y %H:%M:%S', 
    '%Y-%m-%d %I:%M %p', 
] 

forms.py 
class YourForm(ModelForm): 
    date_of_birth = DateTimeField(input_formats=settings.DATE_INPUT_FORMATS) 
    class Meta: 
     model = YourClass 

最後,我不會把它留給用戶手動輸入日期(假設這個視圖是針對人類的),給他們一個DateTime小部件來爲他們選擇它。您可以在此處找到有關的部件信息:https://docs.djangoproject.com/en/1.10/ref/forms/widgets/

與信息有關的datetime型窗體域的位置: https://docs.djangoproject.com/en/1.10/ref/forms/fields/#datetimefield

相關問題