gpt4 book ai didi

python - 如何在基于通用类的 View 中更改 django 中的时间格式

转载 作者:太空宇宙 更新时间:2023-11-03 15:50:54 25 4
gpt4 key购买 nike

使用 CreateView 或 UpdateView 时是否可以更改日期时间字段的格式?我试图让表单接受类似 "2016-12-29 03:49 PM" 形式的日期。我知道格式应该是 '%Y-%m-%d %I:%M %p',并且在 shell 中测试得很好。我只是不知道如何使用 CreateView 或 UpdateView 使其工作,但似乎应该能够完成。

最佳答案

您需要更新表单类以接受其他输入格式。您的表单应如下所示:

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

最后,我不会让用户手动输入日期(假设此 View 适用于人类),而是给他们一个 DateTime 小部件来为他们选择日期。您可以在此处找到有关小部件的信息:https://docs.djangoproject.com/en/1.10/ref/forms/widgets/

以及有关日期时间表单字段的信息: https://docs.djangoproject.com/en/1.10/ref/forms/fields/#datetimefield

关于python - 如何在基于通用类的 View 中更改 django 中的时间格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41315623/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com