Django模板中的TimeField格式

use*_*863 14 django format timefield

我正在编写应用程序DjangoTimeFields在模型中使用多个应用程序.我只想使用时间格式hh:mm(不是hh:mm:ss或hh pm/am或其他东西).我已经设置了django设置TIME_FORMAT = 'H:i'USE_L10N = False根据文档,

USE_L10NTIME_FORMAT如果设置为覆盖,则覆盖True

在我的模板中,我使用Django自动创建的输入框,如:

{{formName.timeField}}
Run Code Online (Sandbox Code Playgroud)

问题是,只要我引入类似"10:00"的东西并执行a POST,当POST完成时,Django(或其他)将其转换为"10:00:00"(因此它会添加秒数).

  • 有没有办法指定日期时间字段显示保存日期的格式?如果我可以使用类似于|date:"H:i"输入框的值那样的东西.

另一方面,我知道我可以手动进行输入框(不是直接使用{{formName.timeField}}),但过去我遇到了一些问题,所以我想避免这种情况(至少目前为止).

没有秒的Django TimeField模型中也有类似的问题,但解决方案不起作用(它给我' NoneType'对象没有属性' strptime')

小智 24

我在我的应用程序中遇到了这个问题,并通过将format参数传递给Django的TimeInput小部件来解决它:

from django import forms

class SettingsForm(forms.Form):
    delivery_time = forms.TimeField(widget=forms.TimeInput(format='%H:%M'))
Run Code Online (Sandbox Code Playgroud)

  • 对于未来读者来说,只是注意到`TimeInput`小部件的`format`参数只控制字段的初始值输出格式,而不是字段的输入验证.对于输入验证格式,请使用`TimeField`的`input_formats`参数. (8认同)

Jos*_*osh 11

假设您有一个您想要TimeFields使用的格式,您可以将其添加TIME_INPUT_FORMATS到您的设置文件中.例如,TIME_INPUT_FORMATS = ('%I:%M %p',)将您的时间格式设置为"下午5:30".

文档:https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-TIME_INPUT_FORMATS