views:

159

answers:

1
| 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. Basically, I have an object that's called "the_tag". I want to select from Log where log.last_updated (which is a datetime field) is between the tag's time. But, I don't know how to write the last part of this Django query.

+6  A: 

To get the exact behaviour of your example:

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

For an inclusive range (equivalent to __gte, __lte) the query is a bit simpler:

Log.objects.filter(last_updated__range=(the_tag.time_before, the_tag.time_after))
Ben James