2010-08-09 11 views
2

Je suis perdu en quelque sorte, je veux faire quelque chose comme ci-dessous quel filtre par l'ID.Google app moteur: filtre par ID

id = 1000 
query = Customers.all() 
query.filter('ID =', id) 

ou

query = db.GqlQuery("select * from Customers where ID = %s" % id) 

Quelle est la bonne méthode pour filtrer par ID?

Répondre

4

les deux sont corrects et même Customers.gql ("WHERE ID =: 1", id);

Edit: Si ID est la propriété id créé automatiquement vous devez utiliser Customers.get_by_id()

+2

J'ai essayé, mais tout retour aucun résultat, alors je me demande quelle est la syntaxe correcte d'identité? – Peter

+0

Ai-je besoin d'écrire quelque chose dans index.yaml pour que cette fonction get_by_id fonctionne avec l'identifiant par défaut? –

0

J'ai eu ce même problème, et il est apparu que je viens de travailler trop dur. La réponse se trouve dans getObjectById(). Si cela fonctionne pour vous, allez au my very-similar S.O. question et donnez une réponse à la réponse de Gordon, puisque c'est lui qui m'a montré ça.

Player result = null; 
if (playerKey == null) 
{ 
    log.log(Level.WARNING, "Tried to find player with null key."); 
} 
else 
{ 
    PersistenceManager pm = assassin.PMF.get().getPersistenceManager(); 

    try { 
     result = (Player) pm.getObjectById(Player.class, playerKey); 
    } catch (javax.jdo.JDOObjectNotFoundException notFound) { 
     // Player not found; we will return null. 
     result = null; 
    } 

    pm.close(); 
} 

return result; 
+0

Heh. Oups, désolé - je viens de remarquer que vous vouliez python et je vous ai donné Java. Eh bien, je suis sûr qu'il y a aussi une méthode getObjectByID dans les API python. Bonne chance! – Olie

1

vous devez utiliser Customers.get_by_id(id)

+0

Ai-je besoin de configurer index.yaml pour que cette fonction fonctionne avec l'ID par défaut? –