【问题标题】:django- jquery Datetime picker cannot save the form with date selecteddjango-jquery 日期时间选择器无法保存选定日期的表单
【发布时间】:2015-10-27 05:38:18
【问题描述】:

在html中显示一个表单,如果我没有从日期时间选择器中选择任何日期,则可以成功提交表单。

但是一旦我选择了一个日期,我就无法提交它。所以我猜日期时间格式可能有问题。

日期时间选择器在 html 中工作,它显示下拉列表,我也可以选择它。只是如果我选择了日期,我就无法提交表单。

日期时间选择器的表单 html sn-p

$(function() {
     $('.date-picker').datepicker(
                    {
                        dateFormat: "yymm",
                        changeMonth: true,
                        changeYear: true,
                        showButtonPanel: true,
                        onClose: function(dateText, inst) {

                            function isDonePressed(){
                                return ($('#ui-datepicker-div').html().indexOf('ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all ui-state-hover') > -1);
                            }
                            if (isDonePressed()){
                                var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
                                var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
                                $(this).datepicker('setDate', new Date(year, month, 1)).trigger('change');

                                 $('.date-picker').focusout()//Added to remove focus from datepicker input box on selecting date
                            }
                        },
                        beforeShow : function(input, inst) {
                            inst.dpDiv.addClass('month_year_datepicker')

                            if ((datestr = $(this).val()).length > 0) {
                                year = datestr.substring(datestr.length-4, datestr.length);
                                month = datestr.substring(0, 2);
                                $(this).datepicker('option', 'defaultDate', new Date(year, month-1, 1));
                                $(this).datepicker('setDate', new Date(year, month-1, 1));
                                $(".ui-datepicker-calendar").hide();
                            }
                        }
                    })
        });

models.py

start_date=models.DateField(auto_now=False, auto_now_add=False)
end_date=models.DateField(auto_now=False, auto_now_add=False)

forms.py

widgets = {
        'start_date': forms.DateInput(attrs={'class':'datepicker'}),
        'end_date': forms.DateInput(attrs={'class':'datepicker'}),
    }

在 html 中,日期格式类似于 201010 (YYYYMM)。

我想知道是不是因为html中的日期格式与模型中的不一样,所以我无法提交。

那么请告诉我,如果在这种情况下,我该如何更正我的模型或表格?日期格式应如 html (YYYYMM) 201003 等。

【问题讨论】:

    标签: javascript python html django jquerydatetimepicker


    【解决方案1】:

    您需要在表单类中配置表单字段以接受您选择的日期格式:

    start_date = forms.DateField(widget=DateInput(format='%Y%m'), input_formats=['%Y%m']) 
    end_date = forms.DateField(widget=DateInput(format='%Y%m'), input_formats=['%Y%m'])
    

    (这应该适用于普通的FormModelForm)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-09
      相关资源
      最近更新 更多