RuntimeWarning: DateTimeField ha ricevuto un datetime ingenuo

Sto cercando di inviare una semplice mail usando IPython. Non ho ancora impostato alcun modello per ottenere questo errore. Cosa si può fare?

Errore: /home/sourabh/Django/learn/local/lib/python2.7/site-packages/django/db/models/fields/ init .py: 827: RuntimeWarning: DateTimeField ha ricevuto un datetime ingenuo (2013-09-04 14: 14: 13.698105) mentre il supporto del fuso orario è attivo. RuntimeWarning)

Provato: il primo passo è aggiungere USE_TZ = True al file delle impostazioni e installare pytz (se ansible).

Errore modificato:

 (learn)[email protected]:~/Django/learn/event$ python manage.py shell /home/sourabh/Django/learn/local/lib/python2.7/site-packages/django/db/backends/sqlite3/base.py:53: RuntimeWarning: SQLite received a naive datetime (2013-09-05 00:59:32.181872) while time zone support is active. RuntimeWarning) 

    Il problema non è nelle impostazioni di Django, ma nella data passata al modello. Ecco come appare un object sensibile al fuso orario:

     >>> from django.utils import timezone >>> import pytz >>> timezone.now() datetime.datetime(2013, 11, 20, 20, 8, 7, 127325, tzinfo=pytz.UTC) 

    Ed ecco un object ingenuo:

     >>> from datetime import datetime >>> datetime.now() datetime.datetime(2013, 11, 20, 20, 9, 26, 423063) 

    Quindi se passi la data dell’email ovunque (e alla fine arriva a qualche modello), usa semplicemente Django now() . In caso contrario, probabilmente si tratta di un problema con un pacchetto esistente che recupera la data senza fuso orario e puoi applicare una patch al pacchetto, ignorare l’avviso o impostare USE_TZ su False.

    Usa la funzione django.utils.timezone.make_aware per rendere consapevoli i tuoi oggetti datetime ingenui dal fuso orario ed evitare tali avvertimenti.

    ecco la descrizione del problema che stai affrontando Fuso orario e infissi

    Solo per correggere l’errore per impostare l’ora corrente

     from django.utils import timezone import datetime datetime.datetime.now(tz=timezone.utc) # you can use this value