簡體   English   中英

如何使用 Django 查詢集基於現有數據庫的日期應用過濾器

[英]How to apply filter based on dates of an already existing database with Django Queryset

所以我有下面的QuerySet output:

<QuerySet [{'price': 12.515, 'price_date': datetime.datetime(2017, 3, 13, 0, 0, tzinfo=)}, {'price': 12.335, 'price_date': datetime.datetime(2017, 3, 14, 0, 0, tzinfo=)}, {'price': 12.37, 'price_date': datetime.datetime(2017, 3, 15, 0, 0, tzinfo=)}, {'price': 12.35, 'price_date': datetime.datetime(2017, 3, 16, 0, 0, tzinfo=)}, {'price': 12.305, 'price_date': datetime.datetime(2017, 3, 17, 0, 0, tzinfo= )}...

我怎么知道 price_date = 11-26-21(2021 年 11 月 26 日)的價格? 或者如果我想按最新的 30 個價格過濾?

謝謝

您可以在過濾器表達式中使用日期時間對象或字符串:

filter_date = datetime.now()
Product.objects.filter(price_date=filter_date)
Product.objects.filter(price_date__lte=filter_date)

# or
Product.objects.filter(price_date__lte="2021-11-27 20:00:00")
Product.objects.filter(price_date="2021-11-27")

對於最后 30 個項目,您將根據 price_date 反轉的查詢集排序,然后取前 30 個項目。

如果您已經有一個初始QuerySet ,您仍然可以filter您的結果。

要提取價格,請使用values_list

prices = qs.filter(price_date='2021-11-26').values_list('price', flat=True)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM