Django和Python 3,如果POST值等于not working
我正在尝试从设置的时间段或自定义的时间范围请求数据库日志。通过自定义时间范围发送时,我使用Django和Python 3,如果POST值等于not working,python,django,sqlite,python-3.x,django-models,Python,Django,Sqlite,Python 3.x,Django Models,我正在尝试从设置的时间段或自定义的时间范围请求数据库日志。通过自定义时间范围发送时,我使用0的值,并将其转换为int来测量: from datetime import datetime, timedelta from django.utils.dateparse import parse_date 但在选择自定义日期范围时,我不会从数据库中得到任何信息。我在请求一个标准的小时范围(比如3小时)时得到了数据,但我甚至不确定我的日期是否被正确解析 我真的不认为如果int(range)==0:是真的
0
的值,并将其转换为int
来测量:
from datetime import datetime, timedelta
from django.utils.dateparse import parse_date
但在选择自定义日期范围时,我不会从数据库中得到任何信息。我在请求一个标准的小时范围(比如3小时)时得到了数据,但我甚至不确定我的日期是否被正确解析
我真的不认为如果int(range)==0:是真的。。。我不知道为什么。有更好的方法吗?我希望我能发表评论,这可能只是您的示例中的一个输入错误,或者可能是正确的,我有点误解。您不应该使用
=
操作符而不是吗?它也可能是=
。。。我基本上是在检查所发布的值是否为0
。如果它不是0
,那么它就是我想用于小时范围的数字。parse_date
希望start
和end
是格式为yyyy-mm-dd
的日期,否则它将不返回任何日期。@thierrylahuille如中所示,它不能有时间戳吗?我发送的字符串如下所示:2017-02-22 17:01:04
。在这种情况下,您必须使用parse\u datetime
。我真的不认为如果int(range)==0:
是真的。。。知道为什么吗?
camera_id = request.GET.get('camera_id', None)
range = request.GET.get('range', None)
start = request.GET.get('start', None)
end = request.GET.get('end', None)
if int(range) == 0:
end_date = parse_date(start)
start_date = parse_date(end)
else:
end_date = datetime.now()
start_date = end_date - timedelta(hours=int(range))
data = []
camera_logs = CameraLog.objects.filter(camera_id=camera_id, created_at__range=(start_date, end_date))