У меня есть модель с поля даты и времени:Сравнить даты и DateTime в Django
class MyModel(models.Model):
created = models.DateTimeField(auto_now = True)
Я хочу, чтобы получить все записи, созданные сегодня.
Я пробовал:
MyModel.objects.all().filter(created = timezone.now())
и
MyModel.objects.all().filter(created = timezone.now().date())
Но всегда есть пустое множество. Каков правильный способ в Django сделать это?
EDIT:
Это выглядит странно, но запись, созданная сегодня (06.04.2012 23:09:44) имеет дату (2012-04-07 04:09:44) в базе данных. Когда я пытаюсь отредактировать его в панели администратора, он выглядит правильно (06.04.2012 23:09:44). Разве Django справляется с этим?
Похоже, вы бежите в проблемы часовых поясов. Согласно [documentation] (https://docs.djangoproject.com/en/1.4/topics/i18n/timezones/) датам хранилища django с информацией о часовом поясе в формате UTC в базе данных. – mklauber