today - django.utils.timezone devolviendo la fecha ingenua?
timezone django python (3)
usando django 1.4 tengo un modelo con un campo de fecha y hora. Importé django.utils.timezone para usar como valor predeterminado.
from django.utils import timezone
date = models.DateTimeField(default=timezone.now)
sin embargo, sigo recibiendo la advertencia sobre DateTimeField recibido la fecha ingenua. He configurado USE_TZ en verdadero, por lo que debería estar devolviendo las fechas de aviso
now()
Devuelve un datetime consciente o ingenuo que representa el punto actual en el tiempo cuando
USE_TZ
esTrue
oFalse
respectivamente.
https://docs.djangoproject.com/en/dev/ref/utils/#django.utils.timezone.now
Sé que esto es un paso en auto_now_add=True
pero ¿has probado auto_now_add=True
en tu campo? No es necesario usar el default
para lo que desea.
Por otro lado, su versión debería funcionar también si tiene USE_TZ=True
.
Yo diría que funciona, y obtienes el RunTimeWarning
desde algún lugar en el que estableces el campo de date
directamente y no desde el predeterminado. Intenta restringir cuándo se dispara la advertencia más exactamente.
djangos pone un valor de fecha predeterminado que no es tz aware porque el campo no se puede anular de manera predeterminada. al establecer null en verdadero significa que simplemente establecerá la fecha en NULL en su lugar para que no se muestre la advertencia:
date = models.DateTimeField(default=timezone.now, null=True)