Unfähig, um Ergebnisse zu erhalten, wenn eine Zeichenfolge über den Parameter Substitution in gql Abfrage vorbei

StackOverflow https://stackoverflow.com/questions/1660640

Frage

Ich bin in der Lage, um richtig einen String-Variable auf den GqlQuery durch Parameter Substitution zu passieren, hier ist der Code, den ich habe versucht, zu verwenden;

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

Ich erhalte keine Ergebnisse, und die Abfrage nicht still. Aber wenn ich hart, um die Abfrage wie folgt codieren,

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

ich mein erwartetes resultset. Ich denke, dass ich die Variable user_name in einer falschen Weise bin vorbei, Bitte helfen Sie mir in meinem Stück Code richtig hinzubekommen.

War es hilfreich?

Lösung 2

Ich glaube, ich habe es habe, habe ich versucht, mit dieser,

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

, und ich bekam die erwartete Suchresultates. Ich frage mich, warum andere Formate das Problem in String-Ersetzung haben.

Andere Tipps

Haben Sie versucht, filter('user_name = ', str(user_name))?
Ich nehme an, Sie sind sicher, dass user_name den erwarteten Inhalt hat.

Versuchen repr(user_name) Anmeldung zu überprüfen, ob die Zeichenfolge genau das gleiche wie das, was Sie erwarten (und dass es Unicode ist nicht eher als roh). Versuchen Sie auch den Ausdruck user_name == "peter rice" anzumelden. Other than that, kann ich keinen Grund sehen, warum es nicht funktionieren würde - es gibt buchstäblich keine Möglichkeit, die API diese beeinflussen kann, da sie nicht weiß, wo das Argument übergeben Sie in herkommt

.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top