我有一个名为' DemoModel'它有一个名为demo_date的字段。
我想通过查询 demo_date 字段来获取最近5个月,即(从当前月份记录到过去5个月的记录)记录。
我的模特看起来像
class DemoModel(models.Model):
demo_date = models.DateTimeField()
答案 0 :(得分:0)
此功能提供订阅或添加月份
def monthdelta(date, delta):
m, y = (date.month+delta) % 12, date.year + ((date.month)+delta-1) // 12
if not m: m = 12
d = min(date.day, [31,
29 if y%4==0 and not y%400==0 else 28,31,30,31,30,31,31,30,31,30,31][m-1])
return date.replace(day=d,month=m, year=y)
查询到此处
from datetime import datetime
query= DemoModel.objects.filter(demo_date__gte=monthdelta(datetime.now(), -5)
)
答案 1 :(得分:0)
使用
dateutil.relativedelta import relativedelta
准确计算five_months_ago参数。
然后得到这样的对象:
target_set = DemoModel.objects.filter(demo_date__gte=five_months_ago)
答案 2 :(得分:0)
from datetime import datetime, timedelta
today = datetime.today()
long_ago = today + timedelta(days=-150)
retrieved_data = DemoModel.objects.filter(demo_date__gte=long_ago)