2010-03-31 2 views
0
| time_before | datetime  | YES | MUL | NULL |    | 
| time_after | datetime  | YES | MUL | NULL |    | 

the_tag = Tag.objects.get(id=tag_id) 
Log.objects.filter(blah).extra(where=['last_updated >'+the_tag.time_before, 'last_updated' < the_tag.time_after]) 

Ok. Fondamentalement, j'ai un objet qui s'appelle "the_tag". Je veux sélectionner dans le journal où log.last_updated (qui est un champ datetime) est entre le temps de la balise. Mais, je ne sais pas comment écrire la dernière partie de cette requête Django.Comment puis-je écrire cette requête dans Django? (date/heure)

Répondre

6

Pour obtenir le comportement exact de votre exemple:

Log.objects.filter(last_updated__gt=the_tag.time_before, last_updated__lt=the_tag.time_after) 

Pour une plage inclusive (équivalent à __gte, __lte) la requête est un peu plus simple:

Log.objects.filter(last_updated__range=(the_tag.time_before, the_tag.time_after)) 
Questions connexes