python - 如何在 Django 中过滤具有日期范围的查询

标签 python 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

View .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)

最佳答案

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

from django.utils import timezone

today = timezone.now().date()

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

关于python - 如何在 Django 中过滤具有日期范围的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56993645/

相关文章:

Python 错误 : local variable referenced before assignment

python - Python如何在不定义__init__的情况下知道实例变量?

python - PIL python 的问题

django - 在 Django 模板中引用 django.contrib.auth.login

javascript - Django 开发服务器上的 Ajax 和 JQuery

python - Pandas :pivot 和 pivot_table 之间的区别。为什么只有 pivot_table 工作?

python - Python 字典中有一个嵌套列表

django - 如何在 Django 中为 User 表创建外键?

python - python XML 解析存在一些问题

Python Django : Time Zone Conversion