【问题标题】:format jquery timepicker to load into django TimeField格式化 jquery timepicker 以加载到 django TimeField
【发布时间】:2012-10-26 15:53:20
【问题描述】:

我在格式化我的 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>  

【问题讨论】:

  • 我遇到了类似的东西,jquery datepicker,他们让我工作的方式是在 HTML 表单中声明格式,如下所示:
  • 嗨 PepPizza - 然后 id 会覆盖 jquery id 吗?目前没有成功实施。

标签: jquery django django-forms


【解决方案1】:

我改用this timepicker,但遇到了类似的问题。

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

def make_custom_datefield(f): formfield = 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'

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

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

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

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

【讨论】:

    【解决方案2】:

    也许您需要做的就是在整个站点上显示为HH:MM AM/PM,并让TimeField 负责它在数据库中的存储方式。如果您对此感到满意,您可以使用以下设置:

    # settings.py
    
    ...
    
    TIME_INPUT_FORMATS = ['%I:%M %p']
    

    有关详细信息,请参阅the docs

    【讨论】:

      猜你喜欢
      • 2011-06-08
      • 2017-05-24
      • 1970-01-01
      • 2013-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-04
      • 2020-02-13
      相关资源
      最近更新 更多