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)
如何添加额外的过滤器?
您可以按以下方式进行操作,在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改用了(不同的情况)。