Classes de champs

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.

Attention : **Cette solution n'est plus recommandée** : les applications qui utilisent cette API ne peuvent s'exécuter que dans l'environnement d'exécution Python 2 et devront passer à une [solution recommandée](/appengine/docs/standard/python/migrate-to-python3/migrating-services#migration_paths_for_bundled_services) avant de migrer vers l'environnement d'exécution Python 3.

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, enen signifie que le champ est anglais. Si None, 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 ou datetime.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 ou datetime.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.