1
假设我有这种模式:比较一个月的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。
我在外壳试过,
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个查询返回任何记录? 我已经从其他问题和注意搜索,比有人可能会建议使用日期范围比较来解决这个问题。但我只想知道这个意外结果的根本原因。
非常感谢!
您的_settings.py_中是否有'USE_TZ = True'? – soon 2015-03-31 04:25:54
@soon,是的,我看到它在settings.py – Pang 2015-03-31 04:29:04
该文档[说](https://docs.djangoproject.com/en/1.7/ref/models/querysets/#month),所有日期时间对象都转换为过滤前的当前时区。这可能会导致你面临的问题? – soon 2015-03-31 04:37:18