def to_python(self, value): if value and len(value): items = value.split(",") else: items = [] errors = [] values = [] for i, item in enumerate(items, start=1): if not len(item): errors.append(ValidationError( self.error_messages['no_double_commas'], code='no_double_commas', )) continue try: value = self.base_field.to_python(item) except ValidationError as e: for error in e.error_list: errors.append(ValidationError( lazy_string_concat( self.error_messages['item_n_invalid'], error.message, ), code='item_n_invalid', params={'nth': i}, )) values.append(value) if errors: raise ValidationError(errors) return values
def validate(self, value): super(SimpleListField, self).validate(value) errors = [] for i, item in enumerate(value, start=1): try: self.base_field.validate(item) except ValidationError as e: for error in e.error_list: for message in error.messages: errors.append(ValidationError( lazy_string_concat( self.error_messages['item_n_invalid'], message, ), code='item_invalid', params={'nth': i}, )) if errors: raise ValidationError(errors)
def run_validators(self, value): super(SimpleSetField, self).run_validators(value) errors = [] for item in value: try: self.base_field.run_validators(item) except ValidationError as e: for error in e.error_list: for message in error.messages: errors.append(ValidationError( lazy_string_concat( self.error_messages['item_invalid'], message, ), code='item_invalid', params={'item': item}, )) if errors: raise ValidationError(errors)