Подтвердить что ты не робот

Django фильтр старше дня (ов)?

В день вводится номер пользователя, чтобы получить результат, который старше (дней с ввода пользователя) например, если пользователь 32 дня получит результаты, превышающие 30 дней.

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.filter(entered__gte = datetime.now())
[]
>>> Entry.objects.filter(entered__gte = datetime.now(), entered__lte=datetime(2009,11,1,0,0))
[<Entry: Entry object>]

Моя проблема и мои попытки

xxxx__day__lte.

last_contact_ заполненный ввод из поля ввода

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

Какой лучший способ сделать это в Django? для фильтра в день в моем случае?

4b9b3361

Ответ 1

Что-то вроде этого будет работать для вас:

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

Ответ 2

мы можем использовать часовой пояс jango.now() с timedelta​​p >

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

Ответ 3

Добавить timedelta(-30) в datetime в фильтре.