2009-09-06 8 views
0

Imaginez un instant que j'ai un système permettant aux utilisateurs de prendre des notes. J'ai un modèle d'utilisateur et un modèle Note:Filtrage sur des objets liés lors de l'utilisation d'annotations dans Django

class User(models.Model): 
    name = models.TextField() 

class Note(models.Model): 
    contents = models.TextField() 
    user = models.ForeignKey(User) 
    created_at = models.DateTimeField(auto_now_add=True) 

Je voudrais obtenir un numéro de rang commandé des billets dans les 24 dernières heures. Actuellement, je fais ceci:

User.objects.filter(note__created_at__gt=datetime.now()-timedelta(days=2)).annotate(note_count=Count('note')).order_by('-note_count') 

Cela donne le même résultat si je fais timedelta (jours = 2) ou timedelta (secondes = 1)

Toute aide serait appréciée.

Répondre

0

Il s'avère que cette méthode fonctionne réellement, c'était un bug ailleurs qui causait des problèmes avec la sortie.

Questions connexes