def convert(self, value): value = self._remove_empty(_force_list(value)) if self.min_size is not None and len(value) < 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(value) > 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.max_size) % self.max_size raise ValidationError(message) result = [] errors = {} for idx, item in value: try: result.append(self.field(item)) except ValidationError, e: errors[idx] = e
def to_primitive(self, value): return map(unicode, _force_list(value))
def to_primitive(self, value): return map(self.field.to_primitive, _force_list(value))
def __init__(self, field, name, value, all_errors): Widget.__init__(self, field, name, _force_list(value), all_errors) self._subwidgets = {}