在django过滤所有年份中特定15天的数据

时间:2017-04-17 11:04:47

标签: django

我正在尝试每年特定的15天打印数据。

例如,获取员工在15天内生日的详细信息。

today = datetime.now()
start_day = today.day
start_month = today.month
end_day = today + timedelta(days=15)
end_date = end_day.day
end_month = end_day.month
user_dob_obj = UserProfile.objects.filter(Q(date_of_birth__month__gte=start_month, date_of_birth__day__gte=start_day) &
         Q(date_of_birth__month__lte=end_month, date_of_birth__day__lte=end_date))

1 个答案:

答案 0 :(得分:2)

<强>更新

抱歉,我误解了你的问题。您可以使用if语句检查15天后月份是否相同。然后使用or逻辑操作确保过滤当前和下个月的生日。

today = datetime.now()
end_date = today + timedelta(days=15)
if today.month == end_date.month:
    user_dob_obj = user_dob_obj.filter(date_of_birth__month=today.month, date_of_birth__day__gte=today.day, date_of_birth__day__lte=end_date.day)
else:
    user_dob_obj = queryset.filter(Q(date_of_birth__month=today.month, date_of_birth__day__gte=today.day) | Q(date_of_birth__month=end_date.month, date_of_birth__day__lte=end_date.day))