Django自定义DateField:to_python()保存两个字段

时间:2016-11-10 19:09:46

标签: django django-forms

我有以下表单字段,我用于我的模型(包含两个DateField字段)

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_date保存到start_dayend_day

1 个答案:

答案 0 :(得分:0)

这不是这样做的方法。你需要的是一个字段,但有两个小部件。您可以将MultiValueFieldMultiWidget结合使用来实现此目的。