如何在Django中使用__range


class Order(models.Model):
customer = models.ForeignKey('Customer' , on_delete=models.SET_NULL , null= True , blank = 
True)
date_ordered = models.DateTimeField(auto_now_add = True)

我有这个顺序模型。现在我想取order.objects.filter,只取date_ordered在今天和

之前7天之间的数据

您可以使用:

from datetime import timedelta
from django.db.models.functions import Now
Order.objects.filter(
date_ordered__range=(
Now()-timedelta(days=7), Now()
)
)

如果你想匹配日期,而不是24×7 hours ago,你可以使用:

from datetime import timedelta
from django.utils.timezone import now
today = now().date()
before = today()-timedelta(days=7)
Order.objects.filter(
date_ordered__date__range=(
before, now
)
)

最新更新