Django filter datetime with timezone поле только с датой
У меня есть поле в модели django: "created_at", которое является временем с часовым поясом (пример: 2022-08-09 14:03:18.467482+02). В моем приложении есть форма, в которой пользователь выбирает только дату (пример: 2022-06-09).
Я пытаюсь отфильтровать это поле в моем представлении следующим образом:
res = MyObject.objects.all()
res = res.filter(created_at = date)
Я получаю следующую ошибку: RuntimeWarning: DateTimeField Mybject.created_at received a naive datetime (2022-06-09 00:00:00) while time zone support is active.
Каким образом лучше всего фильтровать мой объект по дате, вводимой пользователем? Нужно ли мне добавлять часовой пояс к выбранной пользователем дате и как?
попробуйте добавить .date()
к Created_at, это должно преобразовать объект временной зоны в дату
Datetime имеет атрибуты created_at.date
и created_at.time
res = MyObject.objects.all()
res = res.filter(created_at.date = date)
Удалось решить эту проблему, правильный синтаксис - добавление двойного подчеркивания, как здесь:
res = res.filter(created_at__date = date)