diff --git a/core/views.py b/core/views.py index abbb7dd..37b5368 100644 --- a/core/views.py +++ b/core/views.py @@ -1,7 +1,7 @@ from django.shortcuts import render, redirect, get_object_or_404 from django.http import HttpResponse, JsonResponse from django.utils import timezone -from django.db.models import Count +from django.db.models import Count, Q from django.core.mail import send_mail, EmailMessage from django.conf import settings from django.views.decorators.csrf import csrf_exempt @@ -74,8 +74,10 @@ def index(request): today_plan = TodayPlan.objects.filter(date=today) - # 获取未完成的家庭事项(排除已完成状态) + # 获取未完成的家庭事项(排除已完成状态和已截止的事项) pending_family_tasks = FamilyTask.objects.exclude(status__name='completed') + # 过滤掉截止日期早于今天的事项(如果设置了截止日期) + pending_family_tasks = pending_family_tasks.filter(Q(deadline__gte=today) | Q(deadline__isnull=True)) context = { 'yesterday': yesterday, @@ -397,10 +399,12 @@ def delete_summary(request, pk): # 家庭事项视图 @login_required def family_tasks(request): - """家庭事项 - 显示所有未完成的事项(非completed状态)""" + """家庭事项 - 显示所有未完成的事项(非completed状态且未截止)""" logger.info("用户访问家庭事项页面") - # 排除已完成的事项,显示所有未完成的事项 + today = timezone.now().date() + # 排除已完成的事项和已截止的事项 tasks = FamilyTask.objects.exclude(status__name='completed') + tasks = tasks.filter(Q(deadline__gte=today) | Q(deadline__isnull=True)) context = { 'tasks': tasks,