2016-11-10 32 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

相关问题