2016-11-10 1 views
0

私はジャンゴカスタムの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 

、私の形で(2つのDateFieldのフィールドが含まれている)私のモデルのために使用しています以下のフォームフィールドを持つを保存するには、私はよフォームが有効であるように、私はフォームをどのように処理するかだけで一つのフィールドを示す

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

これを行う方法ではありません。必要なのはの1つです。フィールドですが、2つのウィジェットです。これを実現するには、と組み合わせてMultiValueFieldを使用できます。

+0

1つのフィールドを持つと、start_datとend_dayの両方で個別にクエリを実行するのが難しくなります – Algorithmatic

+0

私は1つのモデルフィールドを言わなかった、私は1つのフォームフィールドを意味しました。しかし、正直言って私はあなたのフォームに2つのフィールドを使用するだけでは何の理由がないのか分かりません。 –

+0

私はhttp://www.daterangepicker.com/を使用しており、フィールド入力を解析して、 'start_date'と' end_date'に保存しようとしています。 – Algorithmatic