需要整数"日期时间字段

0 投票
2 回答
1651 浏览
提问于 2025-04-18 08:24

我想用这段代码获取所有日期在昨天之前的数据。但是在这一行代码时出现了一个错误:“需要一个整数”:

date = datetime.date(year, month, yesterday)

根据我目前的理解,代码把年份当作整数来处理,但月份的字段却没有这样处理。它把月份字段当作默认的日期时间字段来用。

这是我的看法:

current = datetime.datetime.now()
yesterday = datetime.datetime.today() + datetime.timedelta(days = -1) 
year = datetime.date.today().year
month = datetime.date.today() + relativedelta(months = -1)
date = datetime.date(year, month, yesterday)
hist_obj = Events.objects.filter(uploader = request.user,
        start_date__lte = date)
return render_to_response('history.html', {'history_obj':hist_obj})

2 个回答

1

这段代码让人困惑。yesterdaymonth 都是日期时间类型,因为你在第2行和第4行是这样定义的。那么你在这段代码中想要实现什么呢?错误信息说,你不能把一个日期时间当作天或月的参数来构造另一个日期时间。尤其是,yesterday 不就是你想要的日期吗?为什么不直接把它传给查询呢?

0

试试这个,

day_ago = datetime.date.today() - datetime.timedelta(days=1)
yesterday = datetime.datetime(day_ago.year, day_ago.month, day_ago.day)
hist_obj = Events.objects.filter(uploader = request.user,
        start_date__lt = yesterday)
return render_to_response('history.html', {'history_obj':hist_obj})

撰写回答