2011-04-08 14 views
7

Por lo que he leído, esta es la forma que debería comprobar que no existen registros ...Comprobar si existe un registro en el almacén de datos de App Engine

v = PC_Applications.all().filter('column =', value) 
if not v: 
    return False 

Pero esto devuelve un error!

IndexError: The query returned fewer than 1 results

¿Alguna idea de hacer esto? He leído que .count() es una mala opción. Soy nuevo en Python y App Engine, ¡así que gracias por la paciencia!

Respuesta

7
if not v.get(): 

De App Engine, Query Class get()

Executes the query, then returns the first result, or None if the query returned no results.

+0

Gracias! Mi culpa por no leer la documentación de cerca. – Ryan

3

Esto debería funcionar:

q = db.Query(PC_Applications, keys_only = True) 
if not q.get(): 
    return false 

Creo .all().filter('column =', value) es incluso peor que .count, porque no está haciendo una consulta de solo claves.

0

Si realmente se desea utilizar los registros, hacer algo como:

results = PC_Applications.all().filter('column =', value).fetch(how_many_you_want) 
if results: 
    do_something_to_display_them() 
else: 
    do_something_else() 
Cuestiones relacionadas