Domanda

Sono in grado di trasmettere correttamente una variabile stringa al gqlquery attraverso la sostituzione dei parametri, ecco il codice che ho provato ad utilizzare;

user_name = self.request.get('username') #retrieved from UI
p = models.UserDetails.all().filter('user_name = ', user_name).fetch(1)

Non ottengo alcun risultato e la query ha esito negativo in silenzio. Ma quando ho codificare la query come questa,

p = models.UserDetails.all().filter('user_name = ', "peter rice").fetch(1)

ho il mio gruppo di risultati attesi. Penso che sto passando il user_name variabile in un modo sbagliato, per favore mi aiuti a ottenere il mio pezzo di codice corretto.

È stato utile?

Soluzione 2

Credo di aver capito, ho provato ad utilizzare questo,

p = models.UserDetails.gql('WHERE user_name = :uname', uname = user_name).fetch(1)

e ho avuto il gruppo di risultati attesi. Mi chiedo perché gli altri formati hanno il problema in sostituzione di stringhe.

Altri suggerimenti

Hai provato filter('user_name = ', str(user_name))?
Suppongo che si è sicuri nome_utente ha il contenuto previsto.

Provare ad accedere repr(user_name) per verificare che la stringa è esattamente lo stesso di quello che ti aspetti (e che non è unicode piuttosto che cruda). Anche provare ad accedere alla user_name == "peter rice" espressione. Oltre a questo, non vedo alcuna ragione per cui non avrebbe funzionato - non c'è letteralmente alcun modo l'API può influire su questo, dal momento che non sa dove l'argomento si passa proviene da

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