I'm writing an application in Django
and using several TimeFields
in a model. I only want to work with the time format hh:mm (not hh:mm:ss or hh p.m./a.m. or other things).
I have set the django setting TIME_FORMAT = 'H:i'
and USE_L10N = False
according to the documentation,
USE_L10N
overridesTIME_FORMAT
if set toTrue
In my template I'm using input boxes automatically created by Django like:
{{formName.timeField}}
The problem is that as long as I introduce something like "10:00" and do a POST
, when the POST
is done Django (or whatever) turns it into "10:00:00" (so it adds the seconds).
|date:"H:i"
in the value of the input box that would do the trick.On the other side I know I could do the input box manually (not directly using {{formName.timeField}}
), but I've had some problems in the past with that so I would like to avoid that (at least for the moment).
There is also this similar question in Django TimeField Model without seconds, but the solution does not work (it gives me 'NoneType
' object has no attribute 'strptime
')
I had exactly this problem in my app, and solved it by passing a format
parameter to Django's TimeInput
widget:
from django import forms
class SettingsForm(forms.Form):
delivery_time = forms.TimeField(widget=forms.TimeInput(format='%H:%M'))