2015-10-27 147 views
0

在html中它顯示一個表格,如果我沒有從日期時間選擇器中選擇任何日期,表單可以成功提交。django- jquery日期時間選擇器不能保存表格的日期選擇

但是,一旦我選擇了一個日期,我就無法提交它。所以我猜想日期時間格式可能有問題。

日期時間選擇器在html中工作,它顯示下拉列表,我也可以選擇它。如果我選擇日期,我無法提交表單。

形式的HTML代碼段,日期時間選擇器

$(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等

回答

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)。