Как представить два поля модели как одно поле формы в Django?

Кажется, я не могу понять, как правильно справиться со следующей ситуацией в Django:

У меня есть диапазон дат в модели, который я храню как два отдельных поля, date_start и date_end :

start_date = models.DateTimeField()
end_date = models.DateTimeField()

В форме для этой модели я хочу представить это как одно поле с одной меткой:

timespan = forms.Field(widget=widgets.SelectDateRangeWidget(), label="Date Range")

Как и сейчас, я расширил MultiWidget, чтобы создать SelectDateRangeWidget :

class SelectDateRangeWidget(forms.MultiWidget):
    ...

Которая затем включает два виджета Date . Я хочу использовать это, но затем очистить его до двух отдельных полей модели, а также сохранить возможность загрузки исходных данных в поле формы. Это единственный способ вручную установить initial в значения этих двух полей каждый раз, возможно, в функции формы __ init __ , а также вручную очистить его в этих двух полях модели, или есть более чистый (так сказать) способ сделать это?

13
задан Mikhail Korobov 22 June 2017 в 23:50
поделиться