如何在Django表单中使用TimeInput小部件?

时间:2019-03-28 18:17:47

标签: django django-forms django-widget

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)

2 个答案:

答案 0 :(得分:0)

TimeInput()遇到相同的问题。
我最终跟随Vitor Freitas' tutorial并使用了Django Tempus Dominus,其中包括一个时间选择器选项。

希望这会有所帮助!

答案 1 :(得分:0)

默认情况下,TimeInput小部件呈现为文本类型的html输入字段:

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

相反,如果您想将其呈现为type time的html输入字段:

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

然后在您的ModelForm类的meta小部件部分中添加如下类型的属性:

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