Question

J'ai une liste de noms de clés que je veux récupérer en bloc (les noms de clé sont stockés dans un StringListProperty attaché à une entité). Mon plan général était de faire:

usernames = userrefInstance.users # A collection of strings on another 
model. 
keys = [Key.from_path('User', key_name) for username in usernames] 
users = db.get(keys)

Mes questions Key.from_path at-il accès au magasin de données? J'essaie d'être aussi rapide que possible et si Key.from_path frappe le magasin de données, je dois travailler une autre façon de stocker une collection de clés - je ne veux pas particulièrement stocker l'objet Key dans une propriété de liste car je fournis également à l'utilisateur requêtes conviviales à travers StringListPropererties.

Était-ce utile?

La solution

Après avoir creusé et interrogé un autre groupe, il s'avère que:

  Les clés

sont entièrement déterminées par l'application   ID et le chemin, il n'y a donc pas besoin de   accédez au magasin de données pour cela. - Nick Johnson

Vous pouvez également utiliser une liste de db.Key

Autres conseils

Les paramètres que vous transmettez à Key.from_path () contiennent toutes les informations nécessaires à la création de la clé unique, de sorte qu'elle n'a pas besoin de s'afficher dans le magasin de données.

  

Chaque entité du magasin de données a une clé qui l'identifie de manière unique.   La clé comprend les composants suivants:

     
      
  1. Le type de l'entité qui le catégorise aux fins des requêtes de magasin de données
  2.   
  3. Un identifiant pour l'entité individuelle, qui peut être soit   
        
    • une chaîne de nom de clé
    •   
    • un identifiant numérique entier
    •   
  4.   
  5. Un chemin d'ancêtre facultatif localisant l'entité dans la hiérarchie du magasin de données
  6.   

source: https://developers.google.com/appengine/docs/ python / magasin de données / entités

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top