Как использовать виджет TimeInput в формах Django?

TimeInput не работает для формы, указанной ниже. Но SelectDateWidget() работает нормально. Для текущего виджета TimeInput() не создается никаких ошибок.

Предложите правильный способ использования виджета TimeInput.

forms.py

class TournmentDetails(forms.ModelForm):

    class Meta():
        model = Tournament
        fields = ('eventname','venue','date','time')

        widgets = {
            'date': forms.SelectDateWidget(
                 empty_label=("Choose Year", "Choose Month", "Choose Day"),
            ),
            'time': forms.TimeInput(format='%H:%M'),
        }

models.py

class Tournament(models.Model):
    eventname = models.CharField(max_length=30, default="None", choices = EVENT_CHOICES)
    venue = models.CharField(max_length=30)
    date = models.DateField(max_length=30)
    time = models.TimeField(max_length=30)

person VA splash    schedule 28.03.2019    source источник
comment
Что вы имеете в виду под не работает? Каково текущее и ожидаемое поведение?   -  person gdef_    schedule 28.03.2019
comment
Выпадающее меню часов и минут.   -  person VA splash    schedule 29.03.2019


Ответы (2)


По умолчанию виджет TimeInput отображается как поле ввода html. типа текста:

<input type="text" name="time" id="id_time">

Если вместо этого вы хотите отобразить его как поле ввода html введите время:

<input type="time" name="time" id="id_time">

затем в разделе метавиджетов вашего класса ModelForm добавьте атрибут типа следующим образом:

'time': forms.TimeInput(attrs={'type': 'time'})

person User    schedule 30.03.2020

У меня была та же проблема с TimeInput().
В итоге я выбрал руководство Витора Фрейтаса и использование Django Tempus Dominus с возможностью выбора времени.

Надеюсь это поможет!

person beasclo    schedule 26.08.2019
comment
Лучшей практикой считается написать ответ здесь на случай, если ссылка изменится или перестанет работать. - person ; 26.08.2019