warnings.warn("DateTimeField %s a reçu une date/heure naïve (%s)"
I use django simple-history to get history on my models
I then search the history results by date but I get the error below. How can I format the date?
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)
Solution du problème
Tout d'abord, gardez à l'esprit qu'il ne s'agit pas d'une erreur, mais "seulement" d'un avertissement. Il mentionne que l'horodatage entrant (que vous stockez dans la variable date_search
) ne contient pas d'informations sur le fuseau horaire, alors que vous le comparez à un champ d'horodatage ( history_date
sur model Issue
) qui contient des informations sur le fuseau horaire. Cela pourrait potentiellement entraîner des problèmes.
Si vous connaissez le fuseau horaire provenant de la requête, vous pouvez ajouter cette information à l'horodatage, par exemple :
import pytz
amsterdam_timezone = pytz.timezone('Europe/Amsterdam')
date_search = amsterdam_timezone.localize(request.POST['date-search'])
Commentaires
Enregistrer un commentaire