No es posible obtener resultados cuando pasa a través de una cadena de sustitución de parámetros de consulta gql

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

Pregunta

Soy capaz de pasar correctamente una variable de cadena a la GqlQuery través de la sustitución de parámetros, aquí está el código que he tratado de usar;

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

No consigo ningún resultado y la consulta falla en silencio. Pero cuando codificar la consulta como la siguiente:

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

consigo mi conjunto de resultados esperados. Creo que estoy pasando la variable user_name de una manera incorrecta, por favor me ayudará a conseguir mi pedazo de código correcto.

¿Fue útil?

Solución 2

Creo que ya lo tengo, he intentado usar esto,

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

y tengo el conjunto de resultados esperado. Me pregunto por qué otros formatos tienen el problema de sustitución de cadenas.

Otros consejos

¿Ha tratado filter('user_name = ', str(user_name))?
Supongo que está seguro nombre_usuario tiene el contenido previsto.

Intenta iniciar sesión repr(user_name) para verificar que la cadena es exactamente lo mismo que lo que estás esperando (y que no es unicode en lugar de crudo). Prueba también el registro de la user_name == "peter rice" expresión. Aparte de eso, no puedo ver ninguna razón por la que no funcionaría - hay literalmente ninguna manera la API puede afectar esto, ya que no sabe dónde está el argumento que se pasa en proviene de

.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top