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))
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` """ super(FloatField, self).__init__(verbose_name=verbose_name, mongo_name=mongo_name, **kwargs) self.validators.append( validators.together( validators.validator_for_func(float), validators.validator_for_min_max(min_value, max_value)))
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` """ super(IntegerField, self).__init__(verbose_name=verbose_name, mongo_name=mongo_name, **kwargs) self.validators.append( validators.together( validators.validator_for_func(int), validators.validator_for_min_max(min_value, max_value)))
def __init__(self, verbose_name=None, mongo_name=None, **kwargs): """ :parameters: - `verbose_name`: A human-readable name for the Field. - `mongo_name`: The name of this field when stored in MongoDB. .. seealso:: constructor for :class:`~pymodm.base.fields.MongoBaseField` """ super(GeometryCollectionField, self).__init__(verbose_name=verbose_name, mongo_name=mongo_name, **kwargs) self.validators.append( validators.together( validators.validator_for_type(dict), validators.validator_for_geojson_type('GeometryCollection'), lambda value: validators.validator_for_type( (list, tuple), 'Geometries')(value.get('geometries')))) self.validators.append( lambda value: self.validate_geometries(value.get('geometries')))
def __init__(self, enum_type, verbose_name=None, mongo_name=None, **kwargs): """ :parameters: - `enum_type`: The type of this enum field. - `verbose_name`: A human-readable name for the field. - `mongo_name`: The name of this field when stored in MongoDB. .. seealso:: constructor for :class:`~pymodm.base.fields.MongoBaseField` """ if not issubclass(enum_type, Enum): raise TypeError(f"'enum_type' must be sub class of 'Enum'") self._enum_type = enum_type super().__init__(verbose_name=verbose_name, mongo_name=mongo_name, **kwargs) self.validators.append( validators.together(validators.validator_for_type(enum_type), validators.validator_for_func(enum_type)))