如何防止数据库搜索旧对象?

How to prevent database to search for old objects?

我有一个使用 Postgresql 作为数据库的 Django 应用程序。我存储了一些具有日期时间字段的对象。在我的查询中,我通常想获取存储在前一天或上周的对象,因此较旧的对象对我来说并不重要。

我无法删除旧对象,因为有时我想获取所有数据。

我想优化应用。 有没有办法只搜索最后一天存储的数据,而不搜索其他数据?

编辑:

想象一下,有这么多记录,比如 100 万条,而今天只有一小部分记录。如果我使用Model.objects.filter(datetime_field__gte=last_week),数据库会检查所有记录吗?

您可以在日期时间字段上查询筛选。

import datetime


last_week = datetime.date.today() - datetime.timedelta(days=7)
Model.objects.filter(datetime_field__gte=last_week)

一定要检查文档here and here

例如创建一个新的输入查询2

def SearchW(request):
    serchedWl = Modal.objects.all()
    query1= request.GET.get('query1') #main query
    query2= request.GET.get('query2') #last week
    if query1:
        serchedWl =serchedWl.filter(Q(field__contains=query1))
    if query2:
        serchedWl =serchedWl.filter(Q(datetime_field__contains=query2))
    context={
        'title':'your page',
        'serchedWl': serchedWl, 
    }
    return render(request,'to your page .html',context)

别忘了标签是 serchedWl