Estoy tratando de enviar un correo simple usando IPython. No he configurado ningún modelo que todavía reciba este error. ¿Qué se puede hacer?
Error: /home/sourabh/Django/learn/local/lib/python2.7/site-packages/django/db/models/fields/ init .py: 827: RuntimeWarning: DateTimeField recibió una fecha y hora ingenua (2013-09-04 14: 14: 13.698105) mientras el soporte de zona horaria está activo. RuntimeWarning)
Probado: el primer paso es agregar USE_TZ = Truea su archivo de configuración e instalar pytz(si es posible).
Error cambiado:
(learn)sourabh@sL:~/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)
fuente

tzinfo=<UTC>, qué es<UTC>? Esa no es una construcción sintáctica que he visto.datetime.now, cámbielotimezone.nowy agreguefrom django.utils import timezoneen la parte superior.import pytzdatetime.datetime(2013, 11, 20, 20, 8, 7, 127325, tzinfo=pytz.UTC)USE_TZ = True,TIME_ZONE = 'UTC'. Pero cuando lo usotimezone.now()no se muestratzinfo=<UTC>... Así que este objeto de fecha y hora se pasa como ingenuo. ¿Por que sucede?Use la función django.utils.timezone.make_aware para hacer que sus ingenuos datetime sean conscientes de la zona horaria y evitar esas advertencias.
Convierte el objeto de fecha y hora ingenuo (sin información de zona horaria) en el que tiene información de zona horaria (usando la zona horaria especificada en la configuración de django si no la especifica explícitamente como un segundo argumento):
fuente
auto_nowyauto_now_addfuncionará bien para los campos de fecha y hora. Si necesita tener un objeto de fecha y hora actual consciente de la zona horaria en los modelos por alguna razón, use ladjango.utils.timezone.now()función.Solo para corregir el error y configurar la hora actual
fuente
Uno puede arreglar la advertencia y usar la zona horaria especificada en settings.py, que puede ser diferente de UTC.
Por ejemplo, en mi settings.py tengo:
Aquí hay una solución; La ventaja es que
str(mydate)da el tiempo correcto:Se está utilizando otro método equivalente
make_aware, consulte la publicación de dmrz.fuente
Rápido y sucio: apáguelo:
en tus
settings.pyfuente
También puede anular la configuración, particularmente útil en las pruebas:
Esto evitará que vea la advertencia, al mismo tiempo, cualquier cosa en su código que requiera una fecha y hora consciente de la zona horaria puede causarle problemas. Si este es el caso, vea la respuesta de kravietz.
fuente
Si está tratando de transformar una fecha y hora ingenua en una fecha y hora con zona horaria en django, aquí está mi solución:
t1 es una fecha y hora ingenua y t2 es una fecha y hora con zona horaria en la configuración de django.
fuente