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.
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 esNone
, 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
odatetime.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 llamadocreation_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
nidatetime.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
.