예제 #1
0
    def __init__(self,
                 verbose_name=None,
                 mongo_name=None,
                 min_value=None,
                 max_value=None,
                 **kwargs):
        """
        :parameters:
          - `verbose_name`: A human-readable name for the Field.
          - `mongo_name`: The name of this field when stored in MongoDB.
          - `min_value`: The minimum value that can be stored in this field.
          - `max_value`: The maximum value that can be stored in this field.

        .. seealso:: constructor for
                     :class:`~pymodm.base.fields.MongoBaseField`
        """
        if not _HAS_DECIMAL128:
            raise ConfigurationError(
                'Need PyMongo >= 3.4 in order to use Decimal128Field.')

        super(Decimal128Field, self).__init__(verbose_name=verbose_name,
                                              mongo_name=mongo_name,
                                              **kwargs)

        def validate_min_and_max(value):
            # Turn value into a Decimal.
            value = value.to_decimal()
            validators.validator_for_min_max(min_value, max_value)(value)

        self.validators.append(
            validators.together(validators.validator_for_func(self.to_mongo),
                                validate_min_and_max))
예제 #2
0
 def image(self):
     """The underlying image."""
     if Image is None:
         raise ConfigurationError(
             'PIL or Pillow must be installed to access the "image" '
             'property on an ImageFieldFile.')
     if not hasattr(self, '_image') or self._image is None:
         self._image = Image.open(self.file)
     return self._image
예제 #3
0
    def __init__(self, verbose_name=None, mongo_name=None, storage=None,
                 **kwargs):
        """
        :parameters:
          - `verbose_name`: A human-readable name for the Field.
          - `mongo_name`: The name of this field when stored in MongoDB.
          - `storage`: The :class:`~pymodm.files.Storage` implementation to
            use for saving and opening files.

        .. seealso:: constructor for
                     :class:`~pymodm.base.fields.MongoBaseField`
        """
        if not _HAS_PILLOW:
            raise ConfigurationError(
                'The PIL or Pillow library must be installed in order '
                'to use ImageField.')
        super(ImageField, self).__init__(verbose_name=verbose_name,
                                         mongo_name=mongo_name,
                                         storage=storage,
                                         **kwargs)
        self.validators.append(validators.validator_for_func(Image.open))