Пример #1
0
    def convert(self, value):
        value = _to_string(value)
        if not value:
            if self.required:
                message = self.messages['required']
                if message is None:
                    message = self.gettext(u'This field is required.')
                raise ValidationError(message)
            return None
        try:
            value = int(value)
        except ValueError:
            message = self.messages['no_integer']
            if message is None:
                message = self.gettext('Please enter a whole number.')
            raise ValidationError(message)

        if self.min_value is not None and value < self.min_value:
            message = self.messages['too_small']
            if message is None:
                message = self.gettext(u'Ensure this value is greater than or '
                                       u'equal to %s.') % self.min_value
            raise ValidationError(message)
        if self.max_value is not None and value > self.max_value:
            message = self.messages['too_big']
            if message is None:
                message = self.gettext(u'Ensure this value is less than or '
                                       u'equal to %s.') % self.max_value
            raise ValidationError(message)

        return int(value)
Пример #2
0
 def convert(self, value):
     value = _to_string(value)
     if self.required:
         if not value:
             message = self.messages['required']
             if message is None:
                 message = self.gettext(u'This field is required.')
             raise ValidationError(message)
     if value:
         if self.min_length is not None and len(value) < self.min_length:
             message = self.messages['too_short']
             if message is None:
                 message = self.ngettext(
                     u'Please enter at least %d character.',
                     u'Please enter at least %d characters.',
                     self.min_length) % self.min_length
             raise ValidationError(message)
         if self.max_length is not None and len(value) > self.max_length:
             message = self.messages['too_long']
             if message is None:
                 message = self.ngettext(
                     u'Please enter no more than %d character.',
                     u'Please enter no more than %d characters.',
                     self.max_length) % self.max_length
             raise ValidationError(message)
     return value
Пример #3
0
    def to_primitive(self, value):
        """Convert a value into a primitve (string or a list/dict of lists,
        dicts or strings).

        This method must never fail!
        """
        return _to_string(value)
Пример #4
0
    def convert(self, value):
        result = []
        known_choices = {}
        for choice in self.choices:
            if isinstance(choice, tuple):
                choice = choice[0]
            known_choices[choice] = choice
            known_choices.setdefault(_to_string(choice), choice)

        x = _to_list(value)
        for value in _to_list(value):
            for version in value, _to_string(value):
                if version in known_choices:
                    result.append(known_choices[version])
                    break
            else:
                message = self.gettext(u'"%s" is not a valid choice') % value
                raise ValidationError(message)

        if self.min_size is not None and len(result) < self.min_size:
            message = self.messages['too_small']
            if message is None:
                message = self.ngettext(
                    u'Please provide at least %d item.',
                    u'Please provide at least %d items.',
                    self.min_size) % self.min_size
            raise ValidationError(message)
        if self.max_size is not None and len(result) > self.max_size:
            message = self.messages['too_big']
            if message is None:
                message = self.ngettext(
                    u'Please provide no more than %d item.',
                    u'Please provide no more than %d items.',
                    self.min_size) % self.min_size
            raise ValidationError(message)

        return result
Пример #5
0
 def convert(self, value):
     if isinstance(value, date):
         return value
     value = _to_string(value)
     if not value:
         if self.required:
             raise ValidationError(self.messages['required'])
         return None
     try:
         return parse_date(value, date_formats=self.date_formats)
     except ValueError:
         message = self.messages['invalid_date']
         if message is None:
             message = self.gettext('Please enter a valid date.')
         raise ValidationError(message)
Пример #6
0
 def convert(self, value):
     """This can be overridden by subclasses and performs the value
     conversion.
     """
     return _to_string(value)