Django Queryset过滤器将在7天内完成3个月

时间:2018-05-29 10:04:52

标签: python django

我有3个月前创建的queryset过滤用户。

User.objects.filter(
    create_date__range=(
        datetime.now()-timedelta(90),datetime.now()
    )
)

以上返回3个月前到现在日期范围内的所有用户。但是我不需要把它归还给很多人。

我需要从datetime.now()返回所有将在7天内完成3个月的用户。

例子。 now = 2018-05-29

create_date = 2018-04-20现在将显示超过7天至3个月。 create_date = 2018-03-04< - 这将显示6天后将是3个月。

1 个答案:

答案 0 :(得分:0)

我假设create_datemodels.DateField()

如果我理解你的问题,你可以试试这个:

import datetime as dt
from django.utils import timezone as tz

today_ = tz.now().date()
today_plus_7 = today_ + dt.timedelta(days=7)
today_plus_7_minus_90 = today_plus_7 - dt.timedelta(days=90)

# users that are 83 days or YOUNGER
#qs = User.objects.filter(create_date__range=[
#    today_plus_7_minus_90, today_plus_7])
qs = User.objects.filter(create_date__gte=today_plus_7_minus_90)

# users that are 83 days or OLDER
qs = User.objects.filter(create_date__lte=today_plus_7_minus_90)