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_datesur 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

Posts les plus consultés de ce blog

Comment signer la connexion OKEx API version 5 avec websockets ?

Comment convertir une interface{} qui est vraiment une tranche de types dont le genre est reflect.Int32 en tranche de int32 ?

Créer un fichier CSV à partir d'un fichier texte avec des jetons d'en-tête à l'aide de scripts shell