jquery - 格式化 jquery timepicker 以加载到 django TimeField

标签 jquery django django-forms

我在格式化 jquery timepicker 时遇到问题。我的问题是,我希望时间以 HH:MM AM/PM 格式显示在表单中(以便用户可以这样查看),但将其作为军事时间 (%H:%M) 加载到时间字段中。我的表单字段如下所示:

    if isinstance(f, models.TimeField):
    formfield.widget.format = '%H:%M'
    formfield.widget.attrs.update({'class':'timepicker', 'readonly':'true'})

我使用的是 time without time zone 类型的 Postgresql。 jquery(来自上面的链接)看起来是这样的:

    <script type="text/javascript">
     $(document).ready(function() {
            $( ".timepicker" ).timepicker({
                showPeriod: true,
                showLeadingZero: true
            });
     });
 </script>

如果我不使用 showPeriod 和 showLoadingZero,它可以正常工作,但它并不像我希望的那样用户友好。

谢谢!

编辑:我正在使用模板系统,因此该字段的 html 如下所示:

    <div class="fieldWrapper">
    {{ form.starttime.errors }} 
    <label for="id_starttime">Start Time:</label> 
    {{ form.starttime }} 
    </div>  

最佳答案

我正在使用this timepicker相反,但有类似的问题。

在我的 forms.py 中,我改变了

def make_custom_datefield(f): 表单域 = f.formfield() if isinstance(f, models.TimeField): formfield.widget.format = '%H:%M' formfield.widget.attrs.update({'class':'timepicker', 'readonly':'true'})

time_widget = forms.widgets.TimeInput(attrs={'class': 'timepicker', 'readonly':'true'}) time_widget.format = '%I:%M %p'

然后,在我的表单类中,我有

类 DonationForm(forms.ModelForm): ... 时间 = forms.TimeField(input_formats=['%I:%M %p'],widget=time_widget) ...

另请务必注意您的格式掩码 '%H' 不适用于 '%p',因此请使用 '%I'相反。

我不知道为什么另一种方法不起作用,或者这个解决方法是否正确,但它似乎对我有用。

关于jquery - 格式化 jquery timepicker 以加载到 django TimeField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13255371/

相关文章:

javascript - 如何覆盖 CSS 配色方案设置

javascript - Jquery 附加仅获取循环 Rails 中的最后一个元素

jquery - 从分部 View 使用 Ajax.BeginForm,表单操作使用父 Controller ,而不是定义的 Controller

python - 使用 F() 在 Django 中进行模数查询

python - 如何在 Django 中创建/使用自定义数据库函数

jQuery - 为 linkBut​​ton 附加事件处理程序

python - Django 表单 EmailField 不接受 css 属性

python - 如何使用 Django Admin 注册自定义表单

django - 如何在 Django 表单中显示标记而不是纯文本?

django - 单个 Django 应用程序,多个实例