在其中一个模型中,我按如下方式设置了一个时间戳字段:
created_datetime = models.DateTimeField(auto_now_add = True)
虽然在shell中我可以创建一个obj并保存它但是在我的应用程序中它引发了一个异常,即created_datetime字段不能为null。
在出错的地方感到困惑!!如何重新开始。
答案 0 :(得分:12)
据我所知,默认日期时间的最佳做法是使用以下内容:
created_datetime = models.DateTimeField(default=datetime.datetime.now)
不要忘记导入日期时间
答案 1 :(得分:2)
你可以做这样的事情
created_datetime = models.DateTimeField(auto_now_add=True, auto_now=False)
答案 2 :(得分:1)
我有这个,它让我迷惑了好久了。
原来我的模型有一个自定义的主键,这是由于在构造一些测试对象时没有设置错误的原因。
第一次将auto_now_add
设置为created_at
时,效果很好。第二次它不存在,因为具有空主键的对象已经存在,所以它正在进行更新。并且尝试将其设置为created_at
null,这在我的模型中是不允许的。
因此值得检查一下,是否以“在我的应用程序中它引发了一个created_datetime字段不能为null的异常”的错误结束此问题,这可能是由于未正确设置主键引起的。
解决方案是为我正确设置主键。
答案 3 :(得分:-1)
以下方法是在django文档的“part1”中
from django.utils import timezone
p = Poll(question="What's new?", pub_date=timezone.now())