Clases Field

La clase Field es una clase base abstracta que representa un campo de un documento. No se debe crear una instancia de esta clase en forma directa, sino que se recomienda usar una de las subclases que representan tipos de datos específicos.

Precaución: **Esta solución ya no se recomienda:** Las apps que usan esta API solo pueden ejecutarse en el entorno de ejecución de Python 2 y deberán actualizarse a una [solución recomendada](/appengine/docs/standard/python/migrate-to-python3/migrating-services#migration_paths_for_bundled_services) antes de migrar al entorno de ejecución de Python 3.

Field se define en el módulo google.appengine.api.search.

Propiedades

Una instancia de la clase Field tiene las siguientes propiedades:

name

Es el nombre del campo. Debe empezar con una letra y contener solo letras, dígitos y guiones bajos (_), y no tener más de 500 caracteres.

language

Código de idioma de dos letras ISO 693-1 para el contenido del campo, a fin de facilitar la asignación de token. Por ejemplo, en significa que el campo está en inglés. Si el valor es None, se usará el código de idioma del documento.

value

Valor del campo. Los tipos de datos varían según la subclase específica.

Subclases

La clase Field tiene las siguientes subclases:

clase TextField

Campo que contiene texto.

El valor del campo debe ser una string o una string Unicode. En el siguiente ejemplo, se muestra un campo de texto llamado signature con contenido en polaco:

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

Excepciones

TypeError

El valor proporcionado no es una string de texto.

ValueError

El valor excede la longitud máxima permitida.

clase HtmlField

Un campo que contiene contenido HTML.

El valor de campo debe ser una string o una string Unicode con contenido del campo que se pueda buscar. En el siguiente ejemplo, se muestra un campo HTML llamado content:

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

Excepciones

TypeError

El valor proporcionado no es una string de texto.

ValueError

El valor excede la longitud máxima permitida.

clase AtomField

Un campo que contiene texto y se trata como token indivisible (atómico) para fines de indexación.

El valor del campo debe ser una string o un objeto Unicode que debe ser tratado como un token atómico. En el siguiente ejemplo, se muestra un campo atómico llamado contributor:

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

Excepciones

TypeError

El valor proporcionado no es una string de texto.

ValueError

El valor excede la longitud máxima permitida.

clase NumberField

Campo que contiene un valor numérico.

El valor del campo debe ser numérico. En el siguiente ejemplo, se muestra un campo numérico llamado size con valor de número entero 10:

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

Excepción

TypeError

El valor proporcionado no es numérico.

clase DateField

Campo que contiene un valor de fecha o de fecha y hora.

El valor del campo debe ser del tipo datetime.date o datetime.datetime. Solo se pueden usar los objetos de fecha y hora “naive” de Python. Los objetos “Aware” no están permitidos. En el siguiente ejemplo, se muestra un campo de fecha llamado creation_date que representa la fecha 21 de marzo de 2011:

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

Excepción

TypeError

El valor proporcionado no es datetime.date ni datetime.datetime.

clase GeoField

Campo que contiene un valor GeoPoint.

En el siguiente ejemplo, se muestra un GeoField llamado place que representa una ubicación a una latitud de -33.84 grados y a una longitud de 151.26 grados:

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

Excepción

TypeError

El valor proporcionado no es un GeoPoint.