Não é possível obter resultados ao passar uma corda através do parâmetro de substituição em gql consulta

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

Pergunta

Eu sou capaz de passar corretamente uma variável string para o GqlQuery através de substituição de parâmetros, aqui está o código que eu tentei usar;

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

Eu não obter quaisquer resultados ea consulta falha silenciosamente. Mas quando eu codificar a consulta como esta,

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

Eu recebo o meu conjunto de resultados esperados. Eu acho que eu estou passando a variável user_name de uma maneira errada, por favor, me ajudar na obtenção de meu pedaço de direito código.

Foi útil?

Solução 2

Eu acho que eu tenho, eu tentei usar isso,

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

e eu tenho o conjunto de resultados esperados. Eu me pergunto por outros formatos têm o problema em substituição string.

Outras dicas

Você já tentou filter('user_name = ', str(user_name))
Eu suponho que você tem certeza user_name tem o conteúdo esperado.

Tente fazer login repr(user_name) para verificar se a string é exatamente o mesmo que o que você está esperando (e que não é unicode ao invés de cru). Além disso, tente registrar o user_name == "peter rice" expressão. Fora isso, eu não consigo ver nenhuma razão por que ele não iria funcionar - não há literalmente nenhuma maneira que a API pode afetar isso, uma vez que não sabe onde está o argumento que transmite em vem de

.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top