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 ?

La fonction GCP Cloud pour écrire des données dans BigQuery s'exécute avec succès, mais les données n'apparaissent pas dans la table BigQuery

Erreur Symfony : "Une exception a été levée lors du rendu d'un modèle"