La classe Field
est une classe de base abstraite représentant un champ dans un document. Cette classe ne doit pas être directement instanciée. Utilisez plutôt l’une des sous-classes représentant des types de données spécifiques.
La classe Field
est définie dans le module google.appengine.api.search
.
Propriétés
Une instance de la classe Field
possède les propriétés suivantes :
- name
Nom du champ. Doit commencer par une lettre, ne contenir que des lettres, des chiffres et des traits de soulignement (
_
), et ne pas dépasser 500 caractères.- Langage
Code de langue ISO 693-1 à deux lettres applicable au contenu du champ, destiné à faciliter la création de jetons. Par exemple,
en
en signifie que le champ est anglais. SiNone
, le code de langue appliqué sera celui du document.- value
Valeur du champ. Le type de données varie en fonction de la sous-classe spécifique.
Sous-classes
Les sous-classes de Field
sont les suivantes :
- Classe TextField
Champ contenant du texte.
La valeur du champ doit être une chaîne ou une chaîne Unicode. L'exemple suivant présente un champ de texte nommé
signature
avec du contenu en polonais :TextField(name='signature', value='brzydka pogoda', language='pl')
-
Exceptions
- TypeError
La valeur indiquée n'est pas une chaîne de texte.
- ValueError
La valeur dépasse la longueur maximale autorisée.
- Classe HtmlField
Champ contenant du contenu HTML.
La valeur du champ doit être une chaîne ou une chaîne Unicode représentant le contenu du champ qui peut faire l'objet d'une recherche. L'exemple suivant présente un champ HTML nommé
content
:HtmlField(name='content', value='<html>herbata, kawa</html>', language='pl')
-
Exceptions
- TypeError
La valeur indiquée n'est pas une chaîne de texte.
- ValueError
La valeur dépasse la longueur maximale autorisée.
- Classe AtomField
Champ contenant du texte à traiter comme un jeton indivisible (atomique) à des fins d'indexation.
La valeur du champ doit être une chaîne ou un objet Unicode devant être traité comme un jeton atomique. L'exemple suivant présente un champ Atom nommé
contributor
:AtomField(name='contributor', value='foo@bar.com')
-
Exceptions
- TypeError
La valeur indiquée n'est pas une chaîne de texte.
- ValueError
La valeur dépasse la longueur maximale autorisée.
- Classe NumberField
Champ contenant une valeur numérique.
La valeur du champ doit être numérique. L'exemple suivant présente un champ numérique nommé
size
avec la valeur d'entier 10 :NumberField(name='size', value=10)
Exception
- TypeError
La valeur indiquée n'est pas numérique.
- Classe DateField
Champ contenant une valeur de date ou de date/heure.
La valeur du champ doit être de type
datetime.date
oudatetime.datetime
. Seuls les objets de date et heure "naïve" de Python peuvent être utilisés. Les objets "aware" ne sont pas autorisés. L'exemple suivant présente un champ de date nommécreation_date
représentant la date du 21 mars 2011 :DateField(name='creation_date', value=datetime.date(2011, 03, 21))
Exception
- TypeError
La valeur fournie n'est pas de type
datetime.date
oudatetime.datetime
.
- Classe GeoField
Champ contenant une valeur GeoPoint.
L'exemple suivant montre un champ GeoField nommé
place
représentant un lieu situé à -33,84 degrés de latitude et 151,26 degrés de longitude :GeoField(name='place', value=GeoPoint(latitude=-33.84, longitude=151.26))
Exception
- TypeError
La valeur fournie n'est pas un
GeoPoint
.