我想通过日期时间过滤我的查询。此日期时间是客户想要了解其信息的值范围的日期时间。我试图将其设置到客户选择的月份的第一个月。我通过月份数将其转换为正确的字符串格式,然后转换为datetime对象,因为简单地寻找字符串对象是一个没有返回值和Django的文件说,你需要做的是这样的:Django过滤日期时间后,将字符串转换为日期时间
pub_date__gte=datetime(2005, 1, 30)
代码:
if 'billing-report' in request.POST:
customer_id = int(post_data['selected_customer'])
这是我用得到所选客户的日期和把它变成一个元组
if 'billing-report' in request.POST:
customer_id = int(post_data['selected_customer'])
selected_date = int(post_data['month'])
if selected_date < 10:
selected_date = '0'+str(selected_date)
year = datetime.now()
year = year.year
query_date = str(year) + '-' + str(selected_date) + '-01'
query_date_filter = datetime.strptime(query_date, "%Y-%m-%d")
compute_usages = ComputeUsages.objects.filter(customer_id = customer_id).filter(values_date = query_date_filter)
django debug shows: datetime.datetime(2014, 10, 1, 0, 0)
query_date looks like: 2014-07-01 before it is converted
的代码。
没有错误,但没有数据返回
我用:
compute_usages = ComputeUsages.objects.filter(customer_id = customer_id).filter(values_date = datetime(query_date_filter))
这是造成错误。我很抱歉改变我的问题,因为它演变了,这就是为什么我重新包括我之前做的事情,所以这些评论是有道理的。
'日期时间(..)'不是例如一个元组,'LEN()'将不起作用;它是'datetime'类的实例,例如'datetime.strptime()'类方法返回的类。尝试将'datetime'实例传递给'datetime()'会产生“无效整数”错误:'TypeError:需要一个整数(类型为datetime.datetime)' – jfs 2014-10-17 23:04:23
谢谢@JFSebastian我只是想这样,因为以另一种方式传递不起作用。我恢复了原来的方式。但是没有数据仍然返回。 – 2014-10-17 23:09:15
可能有*多个*问题。解决这个问题并不一定能解决所有问题。不要以这样的方式改变你的问题,例如@Daniel Roseman提供的现有答案不再有意义。 – jfs 2014-10-17 23:11:48