def _model_from_data(self, cleaned_data, src_model = None): """ Получаем модель с заполненными полями из очищенных данных """ if src_model: model = src_model else: model = Rule() # заполняем поля if cleaned_data: # если модель была валидирована model.enabled = (self.cleaned_data.get("enabled") == "True") model.from_number = self.cleaned_data.get("from_number") model.to_number = self.cleaned_data.get("to_number") model.busy_flags = self.cleaned_data.get("busy_flags") model.busy_wait_time = int(self.cleaned_data.get("busy_wait_time"))*1000 if cleaned_data.get("time_enabled") == "True": # проверяем на переадресацию по времени model.SetTimeOfDayCondition(True) # Сохраняем в модель тот факт, что у нас переадресация по времени суток model.date_time_begin = cleaned_data.get("date_time_begin") # сохраняем начальное время model.date_time_end = cleaned_data.get("date_time_end") # сохраняем конечное время else: # иначе model.SetTimeOfDayCondition(False) # Сохраняем в модель тот факт, что у нас нет переадресации по времени суток model.date_time_begin = None # сбиваем начальное время model.date_time_end = None # сбиваем конечное время if cleaned_data.get("dayofweek_enabled") == "True": # проверяем на переадресацию по дню недели model.SetDayOfWeekCondition(True) model.SetDaysOfWeekEnabled( StrToBool(cleaned_data.get("dayofweek_monday")), StrToBool(cleaned_data.get("dayofweek_tuesday")), StrToBool(cleaned_data.get("dayofweek_wednesday")), StrToBool(cleaned_data.get("dayofweek_thursday")), StrToBool(cleaned_data.get("dayofweek_friday")), StrToBool(cleaned_data.get("dayofweek_saturday")), StrToBool(cleaned_data.get("dayofweek_sunday")) ) else: # иначе - отключаем ее model.SetDayOfWeekCondition(False) model.SetDaysOfWeekEnabled( False, False, False, False, False, False, False ) return model