Notice: Over the next few months, we're reorganizing the App Engine documentation site to make it easier to find content and better align with the rest of Google Cloud products. The same content will be available, but the navigation will now match the rest of the Cloud products.

Python 3.10 is now generally available.


Stay organized with collections Save and categorize content based on your preferences.

A property whose values are PostalAddress instances.

Inherits From: Property, expected_type

verbose_name User friendly name of property.
name Storage name for property. By default, uses attribute name as it is assigned in the Model sub-class.
default Default value for property if none is assigned.
required Whether property is required.
validator User provided method used for validation.
choices User provided set of valid property values.
indexed Whether property is indexed.

Child Classes

class data_type



View source

Deprecated backwards-compatible accessor method for self.data_type.


View source

Default value for unassigned values.

Default value as provided by __init__(default).


View source

Determine if value is empty in the context of this property.

For most kinds, this is equivalent to "not value", but for kinds like bool, the test is more subtle, so subclasses can override this method if necessary.

value Value to validate against this Property.

True if this value is considered empty in the context of this Property type, otherwise False.


View source

Determine new value for auto-updated property.

Some properies (e.g. DateTimeProperty, UserProperty) optionally update their value on every put(). This call must return the new desired value for such properties. For all other properties, this call must return AUTO_UPDATE_UNCHANGED.

model_instance Instance to get new value for.

Datastore representation of the new model value in a form that is appropriate for storing in the datastore, or AUTO_UPDATE_UNCHANGED.


View source

Datastore representation of this property.

Looks for this property in the given model instance, and returns the proper datastore representation of the value that can be stored in a datastore entity. Most critically, it will fetch the datastore key value for reference properties.

Some properies (e.g. DateTimeProperty, UserProperty) optionally update their value on every put(). This call must return the current value for such properties (get_updated_value_for_datastore returns the new value).

model_instance Instance to fetch datastore value from.

Datastore representation of the model value in a form that is appropriate for storing in the datastore.


View source

Native representation of this property.

Given a value retrieved from a datastore entity, return a value, possibly converted, to be stored on the model instance. Usually this returns the value unchanged, but a property class may override this when it uses a different datatype on the model instance than on the entity.

This API is not quite symmetric with get_value_for_datastore(), because the model instance on which to store the converted value may not exist yet -- we may be collecting values to be passed to a model constructor.

value Value retrieved from the datastore entity.

The value converted for use as a model instance attribute.


View source


View source

Coerce values (except None) to self.data_type.

value The value to be validated and coerced.

The coerced and validated value. It is guaranteed that this is either None or an instance of self.data_type; otherwise an exception is raised.

BadValueError if the value could not be validated or coerced.

creation_counter 2