def process(self, instance, value, progress_setter=None): field = self.field if value in get_empty_values(field) or not self.has_processor(): if self.set_default(instance, value) and self.has_processor(): value = self.get_value(instance) field = self._dependee if (field is None or value not in get_empty_values(field)) and self.has_processor(): if self.async: self._processor.progress_setter = progress_setter progress_setter(self._processor, 0) try: if isinstance(self._processor, BaseProcessor): new_value = self._processor( value, instance=instance, field=self.field, dependee=self._dependee, stashed_value=self.get_stashed_value(instance, value), **self._processor_params ) else: new_value = self._processor(value) finally: if self.async: delattr(self._processor, 'progress_setter') if self.async: progress_setter(self._processor, 1) if new_value is not VALUE_NOT_SET: self.set_value(instance, new_value)
def process(self, instance, value, progress_setter=None): field = self.field if value in get_empty_values(field) or not self.has_processor(): if self.set_default(instance, value) and self.has_processor(): value = self.get_value(instance) field = self._dependee if self.has_processor(): if self.async_: self._processor.progress_setter = progress_setter progress_setter(self._processor, 0) try: if isinstance(self._processor, BaseProcessor): new_value = self._processor( value, instance=instance, field=self.field, dependee=self._dependee, stashed_value=self.get_stashed_value(instance, value), **self._processor_params) else: new_value = self._processor(value) finally: if self.async_: delattr(self._processor, 'progress_setter') if self.async_: progress_setter(self._processor, 1) if new_value is not VALUE_NOT_SET: self.set_value(instance, new_value)
def set_default(self, instance, value): dependee = self._dependee if dependee is None or \ dependee.value_from_object(instance) in get_empty_values(dependee): default_value = self.get_default(instance, value) if default_value is not VALUE_NOT_SET: self.set_value(instance, default_value, is_default=True) return True return False
def post_init(self, instance, value, *args, **kwargs): if self._dependee is None and self._processor and \ value not in get_empty_values(self.field) and isinstance(value, files.FieldFile): # regenerate the dependent filename and reattach it. self.set_value(instance, self.generate_filename(instance, value.name)) else: if self._dependee is None: self.set_value(instance, None) super(FileDependency, self).post_init(instance, value, *args, **kwargs)
def set_default(self, instance, value): dependee = self._dependee if dependee is None or \ dependee.value_from_object(instance) in get_empty_values(dependee): default_value = self.get_default(instance, value) if default_value is not VALUE_NOT_SET: self.set_value(instance, default_value, is_default=True) return True return False
def post_init(self, instance, value, *args, **kwargs): if self._dependee is None and self._processor and \ value not in get_empty_values(self.field) and isinstance(value, files.FieldFile): # regenerate the dependent filename and reattach it. self.set_value(instance, self.generate_filename(instance, value.name)) else: if self._dependee is None: self.set_value(instance, None) super(FileDependency, self).post_init(instance, value, *args, **kwargs)