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
视图.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])
推荐阅读
- java - 将一些 get 和 set 代码从 C# 转换为 Java
- python - 替换、转换、更改、布尔型 False 和 True 为 0 和 1
- c++ - 是否有另一种选择来打破?
- arrays - Bash - 如何检查变量值是否在数组中
- sql-server - 是否可以通过 Oracle 的异构链接使用 WITH (NOLOCK)
- python - 在数据框列中保留重复项的第一个和最后一个条目
- vue.js - 如何缓存其他路线以供离线浏览?
- azure - 无法使用 AAD 对 Azure Bot 进行身份验证(bot sdk 4)
- c++ - 如何重复整个代码直到用户退出?
- javascript - 间谍函数到计算得到