首页 > 解决方案 > 如何在 django 中过滤具有日期范围的查询

问题描述

在这里,我如何过滤从过去一个月内添加到该日期的所有产品。

模型.py

class Product(models.Model):
    name = models.CharField(max_length=250)
    description = models.TextField(blank=True)
    featured = models.BooleanField(default=False)
    added = model.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.name

视图.py

def all_products(request):
    all_products = Product.objects.all()
    recently_added_products = Product.objects.filter(...)
    context = {'all_products':all_products,'recent_products':recent_products}
    return render(request,'products_list.html',context)

标签: pythondjango

解决方案


您可以使用range过滤器指定日期范围(包括):

from django.utils import timezone

today = timezone.now().date()

Product.objects.filter(added__range=[today - timezone.timedelta(days=30), today])

推荐阅读