Có cách nào để có được tất cả các đối tượng có ngày chưa đầy một tháng trước ở django hay không.Nhận tất cả các mặt hàng chưa đầy một tháng
Cái gì như:
items = Item.objects.filter(less than a month old).order_by(...)
Có cách nào để có được tất cả các đối tượng có ngày chưa đầy một tháng trước ở django hay không.Nhận tất cả các mặt hàng chưa đầy một tháng
Cái gì như:
items = Item.objects.filter(less than a month old).order_by(...)
định nghĩa của bạn về một "tháng" là gì? 30 ngày? 31 ngày? Trước đây, điều này nên làm điều đó:
from datetime import datetime, timedelta
last_month = datetime.today() - timedelta(days=30)
items = Item.objects.filter(my_date__gte=last_month).order_by(...)
TẠi lợi thế của việc tra cứu trường gte.
Điều này không thành công khi datetime.today() là ngày 1 tháng 3 - tháng trước là tháng 2, chứ không phải tháng 1. Nếu bạn không cần nó chính xác, điều này sẽ hoạt động tốt (30 ngày trước = tháng trước) nhưng nếu bạn thực sự cần phải biết những gì đã xảy ra tháng trước, không có cách nào dễ dàng để tìm hiểu nó trong python (AFAIK). –
có * relatiedelta * trong ** python-dateutil ** có thể cung cấp cho bạn chính xác trong tháng vừa qua. – Neutralizer
[Ở đây] (https://stackoverflow.com/a/9725093/209050) là một cách để có được tháng trước không sử dụng gì ngoài 'datetime'. – mgalgs
items = Item.objects.filter(created_date__gte=aMonthAgo)
Trường hợp aMonthAgo sẽ được tính theo giờ và giờ.
Ý của bạn là "tất cả các đối tượng"? Bạn có nghĩa là tất cả các đối tượng của một loại cụ thể? –
Vâng, tất cả các đối tượng thuộc loại "Item" –