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, **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(ObjectIdField, self).__init__(verbose_name=verbose_name, mongo_name=mongo_name, **kwargs) self.validators.append( validators.validator_for_func(ObjectId))
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(ObjectIdField, self).__init__(verbose_name=verbose_name, mongo_name=mongo_name, **kwargs) self.validators.append( validators.validator_for_func(ObjectId))
def __init__(self, verbose_name=None, mongo_name=None, subtype=bson.binary.BINARY_SUBTYPE, **kwargs): """ :parameters: - `verbose_name`: A human-readable name for the Field. - `mongo_name`: The name of this field when stored in MongoDB. - `subtype`: A subtype listed in the :mod:`~bson.binary` module. .. seealso:: constructor for :class:`~pymodm.base.fields.MongoBaseField` """ super(BinaryField, self).__init__(verbose_name=verbose_name, mongo_name=mongo_name, **kwargs) self.subtype = subtype self.validators.append(validators.validator_for_func(Binary))
def __init__(self, verbose_name=None, mongo_name=None, subtype=bson.binary.BINARY_SUBTYPE, **kwargs): """ :parameters: - `verbose_name`: A human-readable name for the Field. - `mongo_name`: The name of this field when stored in MongoDB. - `subtype`: A subtype listed in the :mod:`~bson.binary` module. .. seealso:: constructor for :class:`~pymodm.base.fields.MongoBaseField` """ super(BinaryField, self).__init__(verbose_name=verbose_name, mongo_name=mongo_name, **kwargs) self.subtype = subtype self.validators.append(validators.validator_for_func(Binary))
def __init__(self, model, on_delete=DO_NOTHING, verbose_name=None, mongo_name=None, **kwargs): """ :parameters: - `model`: The class of :class:`~pymodm.MongoModel` that this field references or the name of the model as a string. - `on_delete`: The action to take (if any) when the referenced object is deleted. The delete rule should be one of the following: * :attr:`ReferenceField.DO_NOTHING` (default). * :attr:`ReferenceField.NULLIFY` * :attr:`ReferenceField.CASCADE` * :attr:`ReferenceField.DENY` * :attr:`ReferenceField.PULL` - `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` example:: class User(MongoModel): name = fields.CharField() # Reference the current model by passing the name as a string. friend = fields.ReferenceField('User') class Post(MongoModel): title = fields.CharField() author = fields.ReferenceField(User) .. seealso:: :ref:`GettingStartedReferenceExample`. """ super(ReferenceField, self).__init__(model=model, verbose_name=verbose_name, mongo_name=mongo_name, **kwargs) TopLevelMongoModel = _import('pymodm.base.models.TopLevelMongoModel') if (ReferenceField.DO_NOTHING != on_delete and not (isinstance(model, type) and issubclass(model, TopLevelMongoModel))): raise ValueError( 'Cannot specify on_delete without providing a Model class ' 'for model (was: %r). For bidirectional delete rules, ' 'use MyModelClass.register_delete_rule instead.' % model) self._on_delete = on_delete self.validators.append(validators.validator_for_func(self.to_mongo))
def __init__(self, model, on_delete=DO_NOTHING, verbose_name=None, mongo_name=None, **kwargs): """ :parameters: - `model`: The class of :class:`~pymodm.MongoModel` that this field references or the name of the model as a string. - `on_delete`: The action to take (if any) when the referenced object is deleted. The delete rule should be one of the following: * :attr:`ReferenceField.DO_NOTHING` (default). * :attr:`ReferenceField.NULLIFY` * :attr:`ReferenceField.CASCADE` * :attr:`ReferenceField.DENY` * :attr:`ReferenceField.PULL` - `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` example:: class User(MongoModel): name = fields.CharField() # Reference the current model by passing the name as a string. friend = fields.ReferenceField('User') class Post(MongoModel): title = fields.CharField() author = fields.ReferenceField(User) .. seealso:: :ref:`GettingStartedReferenceExample`. """ super(ReferenceField, self).__init__(model=model, verbose_name=verbose_name, mongo_name=mongo_name, **kwargs) TopLevelMongoModel = _import('pymodm.base.models.TopLevelMongoModel') if (ReferenceField.DO_NOTHING != on_delete and not (isinstance(model, type) and issubclass(model, TopLevelMongoModel))): raise ValueError( 'Cannot specify on_delete without providing a Model class ' 'for model (was: %r). For bidirectional delete rules, ' 'use MyModelClass.register_delete_rule instead.' % model) self._on_delete = on_delete self.validators.append(validators.validator_for_func(self.to_mongo))
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, 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))
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))
def __init__(self, model, on_delete=DO_NOTHING, verbose_name=None, mongo_name=None, **kwargs): """ :parameters: - `model`: The class of :class:`~pymodm.MongoModel` that this field references. - `on_delete`: The action to take (if any) when the referenced object is deleted. The delete rule should be one of the following: - `verbose_name`: A human-readable name for the Field. - `mongo_name`: The name of this field when stored in MongoDB. * :attr:`ReferenceField.DO_NOTHING` (default). * :attr:`ReferenceField.NULLIFY` * :attr:`ReferenceField.CASCADE` * :attr:`ReferenceField.DENY` * :attr:`ReferenceField.PULL` .. seealso:: constructor for :class:`~pymodm.base.fields.MongoBaseField` """ super(ReferenceField, self).__init__(model=model, verbose_name=verbose_name, mongo_name=mongo_name, **kwargs) MongoModel = _import('pymodm.base.models.MongoModel') if (ReferenceField.DO_NOTHING != on_delete and not (isinstance(model, type) and issubclass(model, MongoModel))): raise ValueError( 'Cannot specify on_delete without providing a Model class ' 'for model (was: %r). For bidirectional delete rules, ' 'use MyModelClass.register_delete_rule instead.' % model) self._on_delete = on_delete self.validators.append(validators.validator_for_func(self.to_mongo))
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)))