You can find duration field as below which is not far good for humans to use.
Django duration widget is used for simplfiend Django model's Duration field.
-
Install
django-durationwidgetusingpippip install django-durationwidget -
Add
durationwidgetto yourINSTALLED_APPSsetting like this::INSTALLED_APPS = [ ... 'durationwidget', ]
-
Make sure to set
APP_DIRStoTruein settings.pyTEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [ os.path.join(BASE_DIR, 'templates'), ... ], 'APP_DIRS': True, # Setup this to True 'OPTIONS': { ... }, }, ]
-
Cheer up you are ready to use
TimeDurationWidgetas normal widget as below.from django import forms from durationwidget.widgets import TimeDurationWidget from .models import YourModel class CustomForm(forms.ModelForm): ... duration = forms.DurationField(widget=TimeDurationWidget(), required=False) class Meta: model = YourModel ...
It will render Duration field as below
duration = forms.DurationField(widget=TimeDurationWidget(
show_days=True, show_hours=True, show_minutes=True, show_seconds=True
), required=False)Following keyword argument can be passed to show/ hide fields in duration widget.
By default all keyword arguments are set to
True
show_days : To display/ hide days field in widget
show_hours : To display/ hide hours field in widget
show_minutes : To display/ hide minutes field in widget
show_seconds : To display/ hide seconds field in widget

