Django DurationField for only hours and minutes?

I’m Just using a simple crispy form using a DurationField which just renders in the form as a text field.


class TimeForm(ModelForm):
    setup_duration = forms.DurationField(required=False)

I attempted to build a custom parser such as…

def duration_string(duration):

    days = duration.days
    seconds = duration.seconds

    minutes = seconds // 60

    hours = minutes // 60
    minutes = minutes % 60

    dur_string = f'{hours}:{minutes}:00'
    if days:
        dur_string = 'f{days} + dur_string'
    return dur_string


class CustomDurationField(forms.DurationField):
    def prepare_value(self, value):
        if isinstance(value, datetime.timedelta):
            return duration_string(value)
        return value


class TimeForm(ModelForm):
    setup_duration = CustomDurationField()

But when a user inputs 1:30 into the form field it still saves in the DB DurationField as minutes:seconds, which I am looking for hours:minutes.

The above user input example of 1:30 would store in my DB as datetime.timedelta(seconds=90), which I need it stored as datetime.timedelta(minutes=90)