Django模型过滤器比较月失败

时间:2015-03-31 03:29:30

标签: python django

假设我有这个模型:

class User(models.Model):
    id = models.AutoField(primary_key=True)
    username = models.CharField(max_length=10)
    last_login = models.DateTimeField(null=True)

这是数据库中的一条记录,

id=15,
username='yhbohh'
last_login='2015-03-31 10:57:18'

我想获得上次登录月份= 3的对象的数量。

我试过shell,

User.objects.filter(last_login__year=2015).count() # return 80
User.objects.filter(last_login__month=3).count() # return 0
User.objects.filter(last_login__day=31).count() # return 0

我可以知道为什么最后2个查询没有返回记录吗? 我从其他问题和通知中搜索过,而不是有人建议使用日期范围比较来解决这个问题。但我只想知道这个意外结果的根本原因。

非常感谢!

1 个答案:

答案 0 :(得分:1)

根据Django documentation

  

USE_TZTrue时,日期时间字段将转换为当前时间   过滤前的区域。