Django DateTimeField auto_now_add no funciona

En uno de los modelos he establecido un campo de marca de tiempo de la siguiente manera:

created_datetime = models.DateTimeField(auto_now_add = True) 

Mientras que en shell puedo crear un objeto y guardarlo, sin embargo, en mi aplicación está generando una excepción que el campo created_datetime no puede ser nulo.

Confundido donde las cosas salieron mal !! Cómo resolverlo.

Puedes hacer algo como esto

 created_datetime = models.DateTimeField(auto_now_add=True, auto_now=False) 

Por lo que sé, la mejor práctica para los tiempos de datos predeterminados es utilizar lo siguiente:

 created_datetime = models.DateTimeField(default=datetime.datetime.now) 

No olvides importar fecha y hora.

Tuve esto y realmente me confundió por años.

Resultó que mi modelo tenía una clave principal personalizada, y se debió a un error que no lo configuraba al construir algunos objetos de prueba.

La primera vez que esto funcionó bien como auto_now_add set created_at . La segunda vez que no funcionó, el objeto con una clave primaria nula ya existía, por lo que estaba realizando una actualización. Y trató de establecer eso en created_at null, lo que no estaba permitido en mi modelo.

Vale la pena comprobar si terminas con esta pregunta con el error “en mi aplicación está generando una excepción que el campo created_datetime no puede ser nulo”, que podría deberse a que no se configuró una clave principal correctamente.

La solución fue para mí establecer correctamente una clave principal.

La siguiente forma está en la “parte 1” de la documentación de django.

 from django.utils import timezone p = Poll(question="What's new?", pub_date=timezone.now())