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