warnings.warn("DateTimeField %s received a naive datetime (%s)"

warnings.warn("DateTimeField %s received a naive 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 中)没有时区信息,而您将其与具有时区的时间戳字段(模型 Issue 上的 history_date)进行比较信息。这可能会导致问题。

如果您知道请求的时区,您可以将该信息添加到时间戳中,例如:

import pytz

date_as_string = request.POST['date-search']
parsed_date = datetime.strptime(date_as_string, '%Y-%m-%d')
amsterdam_timezone = pytz.timezone('Europe/Amsterdam')
date_search = amsterdam_timezone.localize(parsed_date)