C'è un modo per ottenere tutti gli oggetti con una data inferiore a un mese fa in django.Ottenere tutti gli elementi con meno di un mese
Qualcosa di simile:
items = Item.objects.filter(less than a month old).order_by(...)
C'è un modo per ottenere tutti gli oggetti con una data inferiore a un mese fa in django.Ottenere tutti gli elementi con meno di un mese
Qualcosa di simile:
items = Item.objects.filter(less than a month old).order_by(...)
Qual è la sua definizione di un "mese"? 30 giorni? 31 giorni? Passato che, questo dovrebbe farlo:
from datetime import datetime, timedelta
last_month = datetime.today() - timedelta(days=30)
items = Item.objects.filter(my_date__gte=last_month).order_by(...)
prende advantange della ricerca gte campo.
Questo errore si verifica quando datetime.today() è il 1 ° marzo - lo scorso mese era febbraio, non gennaio. Se non hai bisogno di essere esatto, funzionerà bene (30 giorni fa = il mese scorso) ma se hai davvero bisogno di sapere cosa è successo il mese scorso, non c'è un modo semplice per farlo in Python (PER QUANTO NE SO). –
c'è * relatiedelta * in ** python-dateutil ** che può darti esattamente il mese scorso. – Neutralizer
[Qui] (https://stackoverflow.com/a/9725093/209050) è un modo per ottenere il mese precedente usando nient'altro che "datetime". – mgalgs
items = Item.objects.filter(created_date__gte=aMonthAgo)
Dove aMonthAgo dovrebbe essere calcolato da datetime e timedelta.
Cosa intendi per "tutti gli oggetti"? Intendi tutti gli oggetti di un particolare tipo? –
Sì, tutti gli oggetti di tipo "Articolo" –