【问题标题】:How to use TimeInput widget in Django forms?如何在 Django 表单中使用 TimeInput 小部件?
【发布时间】:2019-08-19 15:00:33
【问题描述】:

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)

【问题讨论】:

  • “不工作”是什么意思?当前和预期的行为是什么?
  • 小时和分钟下拉菜单。

标签: django django-forms django-widget


【解决方案1】:

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

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

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

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

然后在您的 ModelForm 类的元小部件部分添加一个类型属性,如下所示:

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

【讨论】:

    【解决方案2】:

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

    希望这会有所帮助!

    【讨论】:

    • 最好在此处写出答案,以防链接更改或失效。
    猜你喜欢
    • 1970-01-01
    • 2011-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-26
    • 2012-07-18
    • 2019-12-21
    相关资源
    最近更新 更多