Warnings.warn("Поле DateTimeField %s получило наивный datetime (%s)"
Я использую django simple-history для получения истории по моим моделям. Затем я ищу результаты истории по дате, но получаю ошибку, описанную ниже. Как я могу отформатировать дату?
RuntimeWarning: DateTimeField HistoricalIssue.history_date received a naive datetime (2022-04-13 10:34:32) while time zone support is active.
warnings.warn("DateTimeField %s received a naive datetime (%s)"
def SearchByDate(request):
date_search = request.POST['date-search']
if date_search:
admin_hist_search_results = Issue.history.filter(history_date=date_search)
Во-первых, имейте в виду, что это не ошибка, а "только" предупреждение. В нем говорится о том, что входящая временная метка (которую вы храните в переменной date_search) не содержит информации о часовом поясе, в то время как вы сравниваете ее с полем временной метки (history_date в модели Issue), которое содержит информацию о часовом поясе. Это потенциально может привести к проблемам.
Если вам известен часовой пояс, поступающий из запроса, вы можете добавить эту информацию к метке времени, например:
import pytz
amsterdam_timezone = pytz.timezone('Europe/Amsterdam')
date_search = amsterdam_timezone.localize(request.POST['date-search'])