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-durationwidget
usingpip
pip install django-durationwidget
-
Add
durationwidget
to yourINSTALLED_APPS
setting like this::INSTALLED_APPS = [ ... 'durationwidget', ]
-
Make sure to set
APP_DIRS
toTrue
in 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
TimeDurationWidget
as 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