58👍
✅
What is your definition of a “month”? 30 days? 31 days? Past that, this should do it:
from datetime import datetime, timedelta
last_month = datetime.today() - timedelta(days=30)
items = Item.objects.filter(my_date__gte=last_month).order_by(...)
Takes advantange of the gte field lookup.
3👍
Do this:
from datetime import datetime, timedelta
def is_leap_year(year):
if year % 100 == 0:
return year % 100 == 0
return year % 4 == 0
def get_lapse():
last_month = datetime.today().month
current_year = datetime.today().year
#is last month a month with 30 days?
if last_month in [9, 4, 6, 11]:
lapse = 30
#is last month a month with 31 days?
elif last_month in [1, 3, 5, 7, 8, 10, 12]:
lapse = 31
#is last month February?
else:
if is_leap_year(current_year):
lapse = 29
else:
lapse = 30
return lapse
last_month_filter = datetime.today() - timedelta(days=get_lapse())
items = Item.objects.filter(date_created__gte=last_month_filter)
This will cater for all cases I can think of.
- [Django]-Django model blank=False does not work?
- [Django]-Adding a user to a group in django
- [Django]-How do I perform query filtering in django templates
1👍
items = Item.objects.filter(created_date__gte=aMonthAgo)
Where aMonthAgo would be calculated by datetime and timedelta.
- [Django]-Anyone using Django in the "Enterprise"
- [Django]-CORS error while consuming calling REST API with React
- [Django]-How to concatenate strings in django templates?
Source:stackexchange.com