示例#1
0
 def get_prep_value(self, value, instance=None):
     try:
         value = self.prepare(value)
         if not value and self.null and self.default is not None:
             value = self.default
         else:
             value = self.to_python(value)
         if value not in self.choices:
             if not self.null:
                 raise exceptions.ChoiceError(
                     "Value \'%s\' does not belong to %s" %
                     (value, self.choices))
             value = None
         transform = self.get_transform_method(instance)
         value = transform(value)
         if not self.validator().validate(value):
             raise exceptions.FieldError(self.validator.validation_message)
         return value
     except exceptions.ChoiceError:
         raise
     except exceptions.FieldError:
         raise
     except ValueError:
         self.raise_type_error(value)
示例#2
0
 def __init__(self, **kwargs):
     super(Field, self).__init__(kwargs)
     self.null = kwargs.pop("null", False)
     self.default = kwargs.pop("default", None)
     if self.default and not self.null:
         raise exceptions.FieldError(
             "You cannot provide a default without setting the field as nullable"
         )
     if 'row_num' in kwargs:
         self.position = kwargs.pop('row_num')
     else:
         self.position = Field.position
         Field.position += 1
     if 'match' in kwargs:
         self.match = kwargs.pop('match')
     self.validator = kwargs.pop('validator', AlwaysValidValidator)
     if 'multiple' in kwargs:
         self.has_multiple = kwargs.pop('multiple')
     self.prepare = kwargs.pop('prepare', lambda val: val)
     if 'keys' in kwargs and isinstance(self, ComposedKeyField):
         self.keys = kwargs.pop('keys')
     self.choices = kwargs.pop('choices', AllChoices())
     if len(kwargs) > 0:
         raise ValueError("Arguments %s unexpected" % kwargs.keys())