Classi dei campi

La classe Field è una classe base astratta che rappresenta un campo di un documento. Questa classe non deve essere direttamente istanziata; utilizza invece una delle sottoclassi che rappresentano tipi di dati specifici.

Field è definito nel modulo google.appengine.api.search.

Proprietà

Un'istanza della classe Field ha le seguenti proprietà:

name

Nome del campo. Deve iniziare con una lettera, contenere solo lettere, cifre e trattini bassi (_) e non deve superare i 500 caratteri.

language

Codice lingua ISO 693-1 di due lettere per i contenuti del campo, per facilitare la tokenizzazione. Ad esempio, en indica che il campo è in inglese. Se None, verrà utilizzato il codice lingua del documento.

value

Valore del campo. Il tipo di dati varia a seconda della sottoclasse specifica.

Sottoclassi

La classe Field ha le seguenti sottoclassi:

class TextField

Un campo contenente testo.

Il valore del campo deve essere una stringa o una stringa Unicode. L'esempio seguente mostra un campo di testo denominato signature con contenuti in polacco:

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

Eccezioni

TypeError

Il valore fornito non è una stringa di testo.

ValueError

Il valore supera la lunghezza massima consentita.

class HtmlField

Un campo contenente contenuti HTML.

Il valore del campo deve essere una stringa o una stringa Unicode contenente i contenuti del campo che possono essere sottoposti a ricerca. Il seguente esempio mostra un campo HTML denominato content:

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

Eccezioni

TypeError

Il valore fornito non è una stringa di testo.

ValueError

Il valore supera la lunghezza massima consentita.

class AtomField

Un campo contenente il testo da trattare come token indivisibile (atomico) ai fini dell'indicizzazione.

Il valore del campo deve essere una stringa o un oggetto Unicode per essere considerato un token atomico. L'esempio seguente mostra un campo atomo denominato contributor:

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

Eccezioni

TypeError

Il valore fornito non è una stringa di testo.

ValueError

Il valore supera la lunghezza massima consentita.

class NumberField

Un campo contenente un valore numerico.

Il valore del campo deve essere numerico. L'esempio seguente mostra un campo numerico denominato size con valore intero 10:

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

Eccezione

TypeError

Il valore fornito non è numerico.

class DateField

Un campo contenente un valore data o data/ora.

Il valore del campo deve essere di tipo datetime.date o datetime.datetime. È possibile utilizzare solo oggetti data e ora "naive" di Python. Gli oggetti "Aware" non sono consentiti. L'esempio seguente mostra un campo della data denominato creation_date che rappresenta la data 21 marzo 2011:

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

Eccezione

TypeError

Il valore fornito non è datetime.date o datetime.datetime.

class GeoField

Un campo contenente un valore GeoPoint.

L'esempio seguente mostra un campo geografico denominato place che rappresenta una località a -33,84 gradi di latitudine e 151,26 gradi di longitudine:

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

Eccezione

TypeError

Il valore fornito non è un GeoPoint.