'Django DateTimeField auto_now_add not working
In one of the model i have set one timestamp field as follows:
created_datetime = models.DateTimeField(auto_now_add = True)
While in shell i am able to create a obj and save it, however in my application it is raising a exception that created_datetime field cannot be null.
Confused where things went wrong!! How to reslove it.
Solution 1:[1]
As far as I know, best practice for default datetimes is to use the following:
created_datetime = models.DateTimeField(default=datetime.datetime.now)
Don't forget to import datetime
Solution 2:[2]
I had this and it really confused me for ages.
Turned out that my model had a custom primary key, and it was due to a bug not setting it when constructing some test objects.
The first time this worked fine as auto_now_add set created_at. The second time it didn't as the object with a null primary key already existed, so it was doing an update. And it tried to set that to created_at null, which wasn't allowed in my model.
So worth checking if you end up on this question with the error "in my application it is raising a exception that created_datetime field cannot be null", that that could be caused by not setting a primary key correctly.
The solution was for me to correctly set a primary key.
Solution 3:[3]
data_obj = Organization.objects.get(id=id)
.....
created_at = data_obj.created_at
It means call your old saved created_at data from database and re-save again during Updation
created_at fields not working so save it statically, no need to do dynamically.
My model is created_at = models.DateTimeField(auto_now_add=True)
Solution 4:[4]
The following way is in the "part1" of django documentation
from django.utils import timezone
p = Poll(question="What's new?", pub_date=timezone.now())
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Alex Jillard |
| Solution 2 | frabcus |
| Solution 3 | Ronny Dsouza |
| Solution 4 | doyoubi |
