Properties and Types
CouchDB document are saved as JSON object. So any type supported by javascript could be saved. Simplecouchdb provides a fixed set of values types that could be saved in database. Property base class can define new types and their validations.
CouchDB values types
Document types can be one of the folllowing:
unicode
Striung value
int
Integer value
long
Long value
bool
Boolean value
float
Float valye
decimal.Decimal
Decimal value
datetime.datetime
Datetime value. Datetime value are converted in RFC 8601 in CouchDB
datetime.date
Date value.
datetime.time
Time value.
list
List value
tuple
Tuple are saved as list.
Properties Classes
All document property classes provided by simplecouchdb.schema are subclasses of the Property base class, and support all of the base constructor’s arguments. See the base class documentation for information about those arguments.
-
class simplecouchdb.schema.StringProperty(verbose_name=None, name=None, default=None, required=False, validators=None, choices=None)
string property str or unicode property
Value type: unicode
-
class simplecouchdb.schema.IntegerProperty(verbose_name=None, name=None, default=None, required=False, validators=None, choices=None)
Integer property. map to int
Value type: int
-
class simplecouchdb.schema.FloatProperty(verbose_name=None, name=None, default=None, required=False, validators=None, choices=None)
Float property, map to python float
Value type: float
-
class simplecouchdb.schema.BooleanProperty(verbose_name=None, name=None, default=None, required=False, validators=None, choices=None)
Boolean property, map to python bool
ValueType: bool
-
class simplecouchdb.schema.DecimalProperty(verbose_name=None, name=None, default=None, required=False, validators=None, choices=None)
Decimal property, map to Decimal python object
ValueType: decimal.Decimal
-
class simplecouchdb.schema.DateTimeProperty(verbose_name=None, auto_now=False, auto_now_add=False, **kwds)
DateTime property. It convert iso3339 string
to python and vice-versa. Map to datetime.datetime
object.
ValueType: datetime.datetime
-
class simplecouchdb.schema.DateProperty(verbose_name=None, auto_now=False, auto_now_add=False, **kwds)
Date property, like DateTime property but only
for Date. Map to datetime.date object
ValueType: datetime.date
-
class simplecouchdb.schema.TimeProperty(verbose_name=None, auto_now=False, auto_now_add=False, **kwds)
Date property, like DateTime property but only
for time. Map to datetime.time object
ValueType: datetime.time
-
class simplecouchdb.schema.ListProperty(verbose_name=None, name=None, default=None, required=False, validators=None, choices=None)
List property. Map to python list
ValueType: list
Property base class
-
class simplecouchdb.schema.Property(verbose_name=None, name=None, default=None, required=False, validators=None, choices=None)
Propertu base which all other properties
inherit.
Properties
-
verbose_name
- str, verbose name of field, could be use for description
-
name
- str, name of field
-
default
- default value
-
required
- True if required
-
validators
- callable or list of callable to validate the field
Methods*
-
validate(value, required=True)
- validate value
-
default_value()
- return default value
-
empty(value)
- test if value is empty
-
_to_python(value)
- convert to python type
-
_to_json(value)
- convert to json, These converetd value is saved in couchdb.
Exceptions
-
exception simplecouchdb.schema.exceptions.DuplicatePropertyError
- exception raised when there is a duplicate
property in a model
-
exception simplecouchdb.schema.exceptions.BadValueError
- exception raised when a value can’t be validated
or is required