上面是我在管理界面中的一张表格,按照id
的降序排列(最近的记录在最上面)。这是我用来创建模型对象并保存的方式。
notification = Notification(from_user=from_user, to_user=to_user,
created_date=datetime.now())
notification.save()
此表的所有插入 Notification
仅在各种 post_save
信号处理程序中完成。会不会造成这样的不一致?
在 django 1.3.2 中使用 TIME_ZONE = 'GMT'
。我可以尝试在模型中使用 auto_now_add=True
选项,但在此之前只想知道为什么会这样。
最佳答案
auto_now_add
不是一个好方法。避免使用它。最好的方法是使用设置默认值:
from django.utils import timezone
date_created = models.DateTimeField(default=timezone.now)
django.utils.timezone
将根据您的时区设置存储日期时间。
请注意 timezone.now
之后缺少的 ()
,这是因为我们将可调用对象传递给模型,并且每次保存新实例时都会调用它。有了括号,它只会在 models.py
加载时被调用一次。这question更详细地阐明了这个问题。
关于python - Django:模型对象保存中的 datetime.now() 时间不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14707547/