Пример #1
0
    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
Пример #2
0
 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)
Пример #3
0
 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)