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 2 is no longer supported by the community. We recommend that you migrate Python 2 apps to Python 3.

Field Classes

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

Class Field is an abstract base class representing a field of a document. This class should not be directly instantiated; instead, use one of the subclasses representing specific data types.

Caution: **This solution is no longer recommended:** Apps that use this API can only run in the Python 2 runtime and will need to upgrade to a [recommended solution](/appengine/docs/legacy/standard/python/migrate-to-python3/migrating-services#migration_paths_for_bundled_services) before migrating to the Python 3 runtime.

Field is defined in the module google.appengine.api.search.

Properties

An instance of class Field has the following properties:

name

Name of the field. Must begin with a letter, contain only letters, digits, and underscores (_), and be no longer than 500 characters.

language

Two-letter ISO 693-1 language code for the field's content, to assist in tokenization. For example, en signifies that the field is English. If None, the language code of the document will be used.

value

Value of the field. Data type varies depending on the specific subclass.

Subclasses

Class Field has the following subclasses:

class TextField

A field containing text.

The field's value must be a string or Unicode string. The following example shows a text field named signature with Polish language content:

TextField(name='signature', value='brzydka pogoda', language='pl')

Exceptions

TypeError

Value supplied is not a text string.

ValueError

Value exceeds maximum allowable length.

class HtmlField

A field containing HTML content.

The field's value must be a string or Unicode string containing the searchable content of the field. The following example shows an HTML field named content:

HtmlField(name='content', value='<html>herbata, kawa</html>', language='pl')

Exceptions

TypeError

Value supplied is not a text string.

ValueError

Value exceeds maximum allowable length.

class AtomField

A field containing text to be treated as an indivisible (atomic) token for indexing purposes.

The field's value must be a string or Unicode object to be treated as an atomic token. The following example shows an atom field named contributor:

AtomField(name='contributor', value='foo@bar.com')

Exceptions

TypeError

Value supplied is not a text string.

ValueError

Value exceeds maximum allowable length.

class NumberField

A field containing a numeric value.

The field's value must be numeric. The following example shows a number field named size with integer value 10:

NumberField(name='size', value=10)

Exception

TypeError

Value supplied is not numeric.

class DateField

A field containing a date or datetime value.

The field's value must be of type datetime.date, or datetime.datetime. Only Python "naive" date and time objects can be used. "Aware" objects are not allowed. The following example shows a date field named creation_date representing the date 21 March 2011:

DateField(name='creation_date', value=datetime.date(2011, 03, 21))

Exception

TypeError

Value supplied is not a datetime.date or a datetime.datetime.

class GeoField

A field containing a GeoPoint value.

The following example shows a GeoField named place representing a location at -33.84 degrees latitude and 151.26 degrees longitude:

GeoField(name='place', value=GeoPoint(latitude=-33.84, longitude=151.26))

Exception

TypeError

Value supplied is not a GeoPoint.