Django __gt过滤器返回重复项

时间:2015-02-15 20:38:24

标签: python django

我想使用time_created作为条件从我的模型中获取项目。

如果我提取的最新项目是在 12:45:44 发布的,我会将其存储在 request.session ['time_at'] = 12:45:44 并使用它来获取晚于上次提取的项目。

new_notice = Notify.objects.filter(time_created__gt = request.session['time_at'])

这应该从 12:45:45 返回带有时间的项目,但它仍然会返回 12:45:44 的项目,这使我有重复我已经取得的物品。

我如何以正确的方式处理这个问题?

2 个答案:

答案 0 :(得分:1)

将12:45:45(字符串)转换为datetime:

import datetime
time_at = datetime.datetime.strptime(request.session['time_at'], '%H:%i:%s')
new_notice = Notify.objects.filter(time_created__gt = time_at)

答案 1 :(得分:0)

Django在数据库中存储的时间比秒更精确。因此,如果您time_at保留12:45:44的确切时间,则查询数据库将检索时间超过毫秒的字段,因此从数据库检索的字段时间可以为12:45:44.231将被检索。