Domanda

Ho un elenco di nomi chiave che voglio recuperare in blocco (i nomi delle chiavi sono memorizzati in StringListProperty collegato a un'entità). Il mio piano generale era di fare:

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)

Le mie domande Key.from_path colpisce l'archivio dati? Sto cercando di essere come il più rapidamente possibile e se Key.from_path colpisce l'archivio dati devo lavorare un altro modo per archiviare una raccolta di chiavi: non ne ho voglia memorizzare l'oggetto chiave in una proprietà dell'elenco poiché fornisco anche l'utente query amichevoli su StringListPropererties.

È stato utile?

Soluzione

Dopo aver scavato e domande su un altro gruppo, si scopre che:

  Le chiavi

??sono interamente determinate dall'app   ID e percorso, quindi non è necessario   accedere al datastore per questo. - Nick Johnson

Oppure puoi anche usare un Elenco di db.Key

Altri suggerimenti

I parametri passati a Key.from_path () contengono tutte le informazioni necessarie per creare la chiave univoca, quindi non è necessario che colpisca il datastore.

  

Ogni entità nel Datastore ha una chiave che la identifica in modo univoco.   La chiave è composta dai seguenti componenti:

     
      
  1. Il tipo di entità che la classifica ai fini delle query di archivio dati
  2.   
  3. Un identificatore per la singola entità, che può essere uno dei due   
        
    • una stringa di nome chiave
    •   
    • un ID numerico intero
    •   
  4.   
  5. Un percorso antenato facoltativo che individua l'entità all'interno della gerarchia del datastore
  6.   

fonte: https://developers.google.com/appengine/docs/ python / datastore / entità

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top