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