Django DurationField только для HH:MM никогда не нужны секунды?

У меня есть DurationField in my DB and trying to use this in ModelForm` с целью отслеживания дней, если они есть, и только часов и минут. Секунды мне вообще не нужны.

Я пытался создать пользовательскую функциональность для этого, следующим образом...

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()

теперь в поле моей формы, когда пользователь вводит 1:45 я хочу, чтобы это было зарегистрировано как 1 час и 45 минут, но когда я проверяю свою базу данных, возвращается 00:01:45, что составляет 1 минуту и 45 секунд.

В моей оболочке я получаю объект timdelta следующего вида datetime.timedelta(seconds=105)

Если у кого-нибудь есть какие-либо рекомендации о том, как этого добиться, буду очень признателен!

Вернуться на верх