2011-06-05 5 views
2

je dois chercher des entités pour les 7 derniers jours, et si moins de 50 entités sont extraites d'étendre la gamme de 10 jours, le modèle est quelque chose comme:obtenir des entités pour 7 derniers jours dans datastore

class MyModel(db.Model): 
    title = db.StringProperty() 
    date = db.DateTimeProperty(auto_now_add=True) 
    plays = db.IntegerProperty() 

J'ai aussi besoin de commander par nombre de pièces décroissantes.

toute aide est appréciée grâce J

Répondre

1

Je ne peux pas tester le code en ce moment, mais je ferais quelque chose comme:

from datetime import datetime, timedelta 

query = MyModel.gql("WHERE date > :1 ORDER BY plays DESC", datetime.now() - timedelta(days=7)) 
count = query.count() 
if count < 50: 
    query = MyModel.gql("WHERE date > :1", datetime.now() - timedelta(days=10)) 
value = query.fetch() 
+0

hmm je peux sembler commander la requête que vous ne pouvez ordre par la valeur spécifiée dans le filtre d'inégalité, qui est la date pas joue. est-il possible de commander le résultat (liste) après la requête? alors aller chercher les entités pour la plage de dates puis ordonner la liste par des jeux après? – user664546

+0

Je l'ai eu de travail, juste utilisé la requête ci-dessus sans la commande, puis a ordonné la liste de requête retournée avec trié() – user664546

Questions connexes