syncano.models.fields

class JSONToPythonMixin[source]

Bases: object

to_python(value)[source]
class Field(name=None, **kwargs)[source]

Bases: object

Base class for all field types.

allow_increment = False
field_lookups = []
default = None
required = False
read_only = True
blank = True
query_allowed = True
has_data = True
has_endpoint_data = False
primary_key = False
creation_counter = 318
validate(value, model_instance)[source]

Validates the current field instance.

Raises:SyncanoFieldError
to_python(value)[source]

Returns field’s value prepared for usage in Python.

to_native(value)[source]

Returns field’s value prepared for serialization into JSON.

to_query(value, lookup_type, **kwargs)[source]

Returns field’s value prepared for usage in HTTP request query.

contribute_to_class(cls, name)[source]
class RelatedManagerField(model_name, endpoint='list', *args, **kwargs)[source]

Bases: syncano.models.fields.Field

contribute_to_class(cls, name)[source]
class PrimaryKeyField(name=None, **kwargs)[source]

Bases: syncano.models.fields.Field

primary_key = True
class WritableField(name=None, **kwargs)[source]

Bases: syncano.models.fields.Field

required = True
read_only = False
class EndpointField(name=None, **kwargs)[source]

Bases: syncano.models.fields.WritableField

has_data = False
has_endpoint_data = True
class StringField(name=None, **kwargs)[source]

Bases: syncano.models.fields.WritableField

field_lookups = ['startswith', 'endswith', 'contains', 'istartswith', 'iendswith', 'icontains', 'ieq']
to_python(value)[source]
class IntegerField(name=None, **kwargs)[source]

Bases: syncano.models.fields.WritableField

allow_increment = True
to_python(value)[source]
class ReferenceField(name=None, **kwargs)[source]

Bases: syncano.models.fields.IntegerField

to_python(value)[source]
class FloatField(name=None, **kwargs)[source]

Bases: syncano.models.fields.WritableField

allow_increment = True
to_python(value)[source]
class BooleanField(name=None, **kwargs)[source]

Bases: syncano.models.fields.WritableField

to_python(value)[source]
class SlugField(name=None, **kwargs)[source]

Bases: syncano.models.fields.StringField

regex = <_sre.SRE_Pattern object at 0x1c63030>
validate(value, model_instance)[source]
class EmailField(name=None, **kwargs)[source]

Bases: syncano.models.fields.StringField

regex = <_sre.SRE_Pattern object at 0x1b745f0>
validate(value, model_instance)[source]
class ChoiceField(*args, **kwargs)[source]

Bases: syncano.models.fields.WritableField

validate(value, model_instance)[source]
class DateField(name=None, **kwargs)[source]

Bases: syncano.models.fields.WritableField

date_regex = <_sre.SRE_Pattern object at 0x17a4a80>
re = <_sre.SRE_Pattern object at 0x17a4a80>
to_python(value)[source]
parse_date(value)[source]
to_native(value)[source]
class DateTimeField(name=None, **kwargs)[source]

Bases: syncano.models.fields.DateField

FORMAT = '%Y-%m-%dT%H:%M:%S.%f'
to_python(value)[source]
parse_from_string(value)[source]
parse_from_date(value)[source]
to_native(value)[source]

Bases: object

to_native()[source]
class LinksField(*args, **kwargs)[source]

Bases: syncano.models.fields.Field

query_allowed = False
to_python(value)[source]
to_native(value)[source]
class ModelField(rel, *args, **kwargs)[source]

Bases: syncano.models.fields.Field

contribute_to_class(cls, name)[source]
validate(value, model_instance)[source]
to_python(value)[source]
to_native(value)[source]
class FileField(name=None, **kwargs)[source]

Bases: syncano.models.fields.WritableField

param_name = 'files'
to_native(value)[source]
class JSONField(*args, **kwargs)[source]

Bases: syncano.models.fields.JSONToPythonMixin, syncano.models.fields.WritableField

query_allowed = False
schema = None
validate(value, model_instance)[source]
to_native(value)[source]
class ArrayField(name=None, **kwargs)[source]

Bases: syncano.models.fields.JSONToPythonMixin, syncano.models.fields.WritableField

validate(value, model_instance)[source]
class ObjectField(name=None, **kwargs)[source]

Bases: syncano.models.fields.JSONToPythonMixin, syncano.models.fields.WritableField

validate(value, model_instance)[source]
class SchemaField(*args, **kwargs)[source]

Bases: syncano.models.fields.JSONField

required = False
query_allowed = False
not_indexable_types = ['text', 'file']
schema = {'items': {'type': 'object', 'properties': {'order_index': {'required': False, 'type': 'boolean'}, 'filter_index': {'required': False, 'type': 'boolean'}, 'type': {'required': True, 'type': 'string', 'enum': ['string', 'text', 'integer', 'float', 'boolean', 'datetime', 'file', 'reference', 'relation', 'array', 'object', 'geopoint']}, 'name': {'required': True, 'type': 'string'}, 'target': {'required': False, 'type': 'string'}}}, 'type': 'array'}
validate(value, model_instance)[source]
to_python(value)[source]
to_native(value)[source]
class PushJSONField(*args, **kwargs)[source]

Bases: syncano.models.fields.JSONField

to_native(value)[source]
class ListField(name=None, **kwargs)[source]

Bases: syncano.models.fields.WritableField

validate(value, model_instance)[source]
class GeoPointField(name=None, **kwargs)[source]

Bases: syncano.models.fields.Field

field_lookups = ['near', 'exists']
validate(value, model_instance)[source]
to_native(value)[source]
to_query(value, lookup_type, **kwargs)[source]

Returns field’s value prepared for usage in HTTP request query.

to_python(value)[source]
class RelationField(name=None, **kwargs)[source]

Bases: syncano.models.relations.RelationValidatorMixin, syncano.models.fields.WritableField

query_allowed = True
field_lookups = ['contains', 'is']
to_python(value)[source]
to_query(value, lookup_type, related_field_name=None, related_field_lookup=None, **kwargs)[source]
to_native(value)[source]