def validate_delivery_datetime(delivery_date, delivery_time=None): now = datetime.datetime.now() if not delivery_date and delivery_time: raise forms.ValidationError(u'Введите дату. Вы ввели только время.') delivery_datetime = combine_date_and_time(delivery_date, delivery_time) if delivery_datetime: if delivery_datetime < now + datetime.timedelta(hours=2): raise forms.ValidationError(u'Вы не можете выбрать время доставки раньше, чем через 2 часа от текущего времени') if (is_friday_after_six_oclock(now) or is_holiday(now)) and delivery_datetime < get_nearest_monday(now): raise forms.ValidationError(u'Вы не можете выбрать дату и время доставки раньше, чем 10:00 ближайшего понедельника') return delivery_datetime
def _delivery_datetime(self, obj): return combine_date_and_time(obj.delivery_date, obj.delivery_time)