开发者

django filter older than day(s)?

The day is the number a user will input to get the result that is older than (days from user input). For example, if user inputs 32 days, they will get the results that are older than 30 days.

A quick try-out:

class Entry(models.Model):
    entered = models.DateTimeField()

>>> from datetime import datetime
>>> Entry(entered = datetime.now()).save()
>>> Entry.objects.filter(entered__lte = datetime.now())
[<Entry: Entry object>]
>>> Entry.objects.filt开发者_如何转开发er(entered__gte = datetime.now())
[]
>>> Entry.objects.filter(entered__gte = datetime.now(), entered__lte=datetime(2009,11,1,0,0))
[<Entry: Entry object>]

My problem and my trying

xxxx__day__lte.

last_contact_filled input from input field

for day_filter in xrange(1,int(last_contact_filled)+1):
                qdict['last_contact__day']=day_filter

What's the best way to do this in Django to filter by day(s) in my case?


Something like this would work for you:

from datetime import datetime, timedelta
how_many_days = 30
MyObject.objects.filter(entered__lte=datetime.now()-timedelta(days=how_many_days))


we can use Django timezone.now() with timedelta

from datetime import timedelta
from django.utils import timezone
time_threshold = timezone.now() - timedelta(days=7)
Entry.objects.filter(entered__gte=time_threshold)


Add a timedelta(-30) to the datetime in the filter.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜