2016-12-24 75 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

相关问题