django:表单 - 覆盖时间输入小部件

标签 django forms widget

我覆盖了时间输入小部件,但是当我提交该表单时,显示“输入有效时间”

class TimePickerWidget(forms.TimeInput):                                                  
def render(self, name, value, attrs=None):                                                
    htmlString = u''                                                                      
    htmlString += u'<select name="%s">' % (name)                                          
    for i in range(12):                                                                   
            htmlString += ('<option value="%d:00 AM">%d:00 AM</option>' % (i,i))          
    htmlString +='</select>'                                                              
    return mark_safe(u''.join(htmlString))                                                

如你所见,它制作了时间选择的下拉框。在形式上,它被称为

class JobForm (ModelForm):
   fromHour = forms.TimeField(widget=TimePickerWidget(format='%I:%M %p'))
   toHour = forms.TimeField(widget=TimePickerWidget(format='%I:%M %p'))

我有两个问题。

1) 当我提交时,会显示“输入有效时间”。我该如何解决这个问题?

2) 有什么方法可以将 format='%I:%M %p' 格式封装到 TimePicketWidget 中吗?

最佳答案

input_format 参数设置为TimeField ,即:

fromHour = forms.TimeField(input_format='%I:%M %p', widget=TimePickerWidget(format='%I:%M %p'))

关于django:表单 - 覆盖时间输入小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13798196/

相关文章:

django - 学习 django 有哪些互动资源?

python - Selenium send_keys 卡在 Python 上

javascript - 在不显示 HTML WordPress 的表单上输入值

dart - Flutter 默认字体大小

python - Django 计数 RawQuerySet

django - 只获取十进制 django-money

html - Mailchimp 表单未提交

javascript - 使用第一个按钮提交表单,该按钮在具有多个按钮的表单中启用

java - 在 Android AppWidget 中按下按钮时执行代码

javascript - 向 jquery 小部件添加回调