You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django视图中按日期过滤,排除return_by早于今日的过期数据

实现逻辑

你只需要在查询Dibbs_Fields数据集时,搭配Django ORM的字段查找运算符和当前日期做筛选即可,实现步骤如下:

  1. 首先导入依赖
from django.utils import timezone
from .models import Dibbs_Fields
  1. 函数视图(FBV)实现示例
def dibbs_valid_list(request):
    # 自动适配项目时区获取当前日期
    current_date = timezone.now().date()
    # 筛选return_by晚于/等于当前日期的未过期数据
    valid_data = Dibbs_Fields.objects.filter(return_by__gte=current_date)
    # 传递数据到模板渲染
    return render(request, "your_template.html", {"dibbs_data": valid_data})
  1. 类视图(CBV,以ListView为例)实现示例
from django.views.generic import ListView

class DibbsValidListView(ListView):
    model = Dibbs_Fields
    template_name = "your_template.html"
    context_object_name = "dibbs_data"

    def get_queryset(self):
        current_date = timezone.now().date()
        # 重写查询集,过滤掉已过期数据
        return super().get_queryset().filter(return_by__gte=current_date)

补充说明

  • 上述代码中__gte是Django ORM内置的大于等于查询运算符,符合return_by >= 当前日期的条件,会保留当天到期的记录
  • 如果你需要将当天到期的记录也判定为过期不展示,将__gte替换为__gt(大于运算符)即可

内容的提问来源于stack exchange,提问作者Rikky Bhai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 17:54:05