La classe Field
è una classe base astratta che rappresenta un campo di un documento. Questa classe non deve creare un'istanza diretta; 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à:
- nome
Nome del campo. Deve iniziare con una lettera, contenere solo lettere, numeri e trattini bassi (
_
) e non deve superare i 500 caratteri.- lingua
Codice lingua ISO 693-1 a due lettere per i contenuti del campo, per facilitare la tokenizzazione. Ad esempio,
en
indica che il campo è in inglese. SeNone
, verrà utilizzato il codice lingua del documento.- valore
Valore del campo. Il tipo di dati varia in base alla sottoclasse specifica.
Sottoclassi
La classe Field
ha le seguenti sottoclassi:
- TextField class
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 lingua polacca: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.
- classe HtmlField
Un campo con contenuti HTML.
Il valore del campo deve essere una stringa o una stringa Unicode contenente i contenuti del campo disponibili per la ricerca. L'esempio seguente 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.
- AtomField class
Un campo contenente 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 come un token atomico. L'esempio seguente mostra un campo atom 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.
- classe 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.
- DateField class
Un campo contenente un valore di data o data/ora.
Il valore del campo deve essere di tipo
datetime.date
odatetime.datetime
. Puoi utilizzare solo oggetti Python "naive" per data e ora. Gli oggetti "Aware" non sono consentiti. L'esempio seguente mostra un campo data denominatocreation_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
odatetime.datetime
.
- classe GeoField
Un campo contenente un valore GeoPoint.
L'esempio seguente mostra un campo geografico denominato
place
, che rappresenta una posizione 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
.