Mam modelu z polem datetime:Porównaj data i datetime w Django
class MyModel(models.Model):
created = models.DateTimeField(auto_now = True)
chcę uzyskać wszystkie rekordy utworzone dzisiaj.
Próbowałem:
MyModel.objects.all().filter(created = timezone.now())
i
MyModel.objects.all().filter(created = timezone.now().date())
Ale zawsze mam zbiór pusty. Jak to działa w Django?
EDIT:
To wygląda dziwnie, ale rekord, stworzony dzisiaj (06.04.2012 23:09:44) ma datę (2012-04-07 04:09:44) w bazie danych. Kiedy próbuję go edytować w panelu administracyjnym, wygląda to poprawnie (06.04.2012 23:09:44). Czy Django jakoś sobie z tym poradzi?
Wygląda na to, że masz problemy z strefami czasowymi. Zgodnie z [dokumentacją] (https://docs.djangoproject.com/en/1.4/topics/i18n/timezones/) django zapisuje daty z informacjami o strefie czasowej jako UTC w bazie danych. – mklauber