如何从数据库中获取最近24小时的记录

PHA*_*PHA 2 python django django-views

我有Orders存储用户订单的模型。我只想过滤order_started用户最近24小时内已发出的订单(字段)。我正在尝试更新以下视图:

def userorders(request):
    Orders = Orders.objects.using('db1').filter(order_owner=request.user).extra(select={'order_ended_is_null': 'order_ended IS NULL',},)
Run Code Online (Sandbox Code Playgroud)

订单模型具有以下字段:

order_uid = models.TextField(primary_key=True)
order_owner = models.TextField()
order_started = models.DateTimeField()
order_ended = models.DateTimeField(blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)

如何添加额外的过滤器?

mu *_*u 無 5

您可以按以下方式进行操作,在filter调用中添加另一个参数(假设函数的其余部分正常工作):

import datetime

def userorders(request):
    time_24_hours_ago = datetime.datetime.now() - datetime.timedelta(days=1)
    orders = Orders.objects.using('db1').filter(
        order_owner=request.user,
        order_started__gte=time_24_hours_ago
        ).extra(select={'order_ended_is_null': 'order_ended IS NULL',},)
Run Code Online (Sandbox Code Playgroud)

请注意,Orders对于变量名而言,这不是一个好选择,因为它引用了项目中的另一个类,并且以大写开头(通常用于类),所以我orders改用了(不同的情况)。