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
Enregistrer un commentaire