2016-11-10 79 views
0

我有我使用我的模型(其中包含兩個的DateField字段)Django的自定義的DateField:to_python()來保存兩個字段

class DateRangeField(forms.DateField): 

    def to_python(self, value): 
     try: 
      values = value.split(' - ') 
      from_date = super(DateRangeField, self).to_python(values[0]) 
      to_date = super(DateRangeField, self).to_python(values[1]) 
     except: 
      raise ValidationError(_("Invalid input")) 

     return from_date, to_date 

,並在我的表格下面的表單字段,我只顯示一個字段

class EventDateRangeForm(forms.ModelForm): 
    daterange = DateRangeField(required=True) 

    class Meta: 
     model = myModel 
     fields = [] 

和我的模型

class myModel(models.Model): 
    start_day = models.DateField(blank=False, 
           null=False) 
    end_day = models.DateField(blank=False, 
           null=False) 

我將如何處理表格,以便當形式是有效的,它將節省from_dateto_datestart_dayend_day

回答

0

這不是這樣做的。你需要的是一個字段,但是有兩個小部件。您可以使用MultiValueFieldMultiWidget一起來實現此目的。

+0

有一個字段將使它更難於在start_dat和end_day上分別執行查詢 – Algorithmatic

+0

我沒有說一個模型字段,我的意思是一個表單字段。但說實話,我不知道爲什麼你不只是在你的表單中使用兩個字段。 –

+0

我使用http://www.daterangepicker.com/並試圖分析字段輸入並將其保存到'start_date'和'end_date' – Algorithmatic

相關問題