Python &引用;需要一个整数";日期时间字段

Python &引用;需要一个整数";日期时间字段,python,sql,django,Python,Sql,Django,我想用这段代码做的是获取所有日期比昨天早的数据。它在以下行抛出错误“需要一个整数”: 日期=日期时间。日期(年、月、昨天) 据我所知,它以年为整数,而不是月份字段。它将月份字段作为默认的日期时间字段 我的观点是: current = datetime.datetime.now() yesterday = datetime.datetime.today() + datetime.timedelta(days = -1) year = datetime.date.today().year mont

我想用这段代码做的是获取所有日期比昨天早的数据。它在以下行抛出错误“需要一个整数”:

日期=日期时间。日期(年、月、昨天)

据我所知,它以年为整数,而不是月份字段。它将月份字段作为默认的日期时间字段

我的观点是:

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行和第4行中定义它们的方式。那么,您试图在抛出错误的代码中实现什么呢?正如消息所说,您不能将datetime作为day或month参数传递来构造另一个datetime。尤其是昨天肯定已经是你想要的日期了?为什么不能直接将其传递给查询?

试试这个

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})

如果需要integer,则将参数转换为integer